本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python
例 01 普通的输入语句
先来看一个例子:
a = input()
print(a)
运行这两行代码,你会发现程序没有输出任何内容,但是也没有停止。
这是为什么呢?input
函数的功能是获取用户输入的信息,因此需要我们在运行程序的终端输入一些信息,然后回车提交。
本例的输出不做演示了,因为你输入什么输出就是什么。你可以尝试输入一个数字,或者一句话。
例 02 带提示的输入语句
再看一个和上面略有差别的例子:
a = input('请输入一个数字:')
print(a)
与上一个相比,这次在运行后多输出了一句话,然而程序依然没有结束,依然要你输入一点什么再按下回车,程序将你输入的内容输出才结束。
打印出的 a
并不包含字符串“请输入一个数字”,由此观之, input
函数的括号内的文字仅作为提示用。
我所教的几乎所有新手在使用 **input**
时都会犯这样的错误:将 **a = input()**
写成 **input(a)**
。牢记编程语言从右到左赋值的原则,以及调用 **input**
时传递的参数仅作为提示用,是不会犯这个错误的。
例 03 一道习题
我们来看一道简单的习题:输入一个整数,输出这个整数加 1 的值。
要解决这个问题,请我们首先思考一件事: a = input()
执行后,变量 a
中存放的数据是什么类型的?
在前面测试时,我们尝试过,无论是整数、小数还是字符串, input
都能轻松读取并存到 a
中。
由此观之, a
的数据类型能存下各种各样的字符,于是它能且只能是字符串(str)了。
假设我们输入 1,那么如果我们直接 print(a + 1)
,这明显是荒谬的,因为 a
是字符串,这么写无异于 print('1' + 1)
——字符串和数字怎么能相加呢?它们做加法,就像是 print('异想之旅' + 1
一样,毫无意义。如果想要它们的数字的数值相加,必须先进行前文提到过的强制类型转换。
参考题解如下:
a = input()
print(int(a) + 1)