Python2 中提供了input
、raw_input
、print
等用于输入输出,但是在 Python3 中移除了raw_input
,并改变了input
的用法,print
也从语句变成了一个函数。
raw_input
的用法为:raw_input(prompt)
prompt
是输入提示,raw_input
会从控制台读取输入,并返回字符串类型。例如:
>>> name = raw_input('请输入姓名:')
请输入姓名:123
>>> type(name)
<type 'str'>
>>>
input
的用法与 raw_input
用法类似:input(prompt)
。
input
的本质是使用 raw_input
实现的:
def input(prompt):
return eval(raw_input(prompt))
可以看出,调用 input
实际上是先调用 raw_input
,再调用 eval
实现。而eval
通常用于执行一个字符串表达式,并返回表达式的值,例如:
>>> eval('1 + 3')
4
raw_input
是从控制台读取输入并返回一个字符串,而input
又调用了eval
函数,故input
的返回值的类型不仅仅局限于字符串(因为eval
执行了字符串),例如:
>>> name = input('输入姓名:')
输入姓名:a # 输入字符串时不加引号会报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'a' is not defined
>>> name = input('输入姓名:') # 添加引号
输入姓名:'a'
>>> num = input('输入数字:') # 输入数值,返回值是数字类型,而非字符串
输入数字:1
>>> type(num)
<type 'int'>
Python3 中的 input
就是 Python2 中的 raw_input
,故要使用 Python2 中的 input
的功能需要封装调用 eval
:
def eval_input(prompt):
return eval(input(prompt))
在 Python2 中 print
是一个语句,在 Python3 中则是一个函数。故在 Python2 中使用 print
可以不加括号,但是在 Python3 中则必须加上括号,否则会报语法错误。
使用 print
最简单的方式就是直接在 print
后面加上 数字、字符串、列表等对象。例如:
>>> print 123
123
>>> print 'hello'
hello
>>> d = {'name': 'd'}
>>> print d
{'name': 'd'}
>>>
部分与 C
语言类似,例子如下:
>>> s = 'hello'
>>> l = len(s)
>>> print('%s 的长度为 %d' % (s, l))
hello 的长度为 5
>>> pi = 13.14963
>>> print('%10.2f' % pi) # 字段宽度10,精度2
13.15
>>> print('%010.2f' % pi) # 同上,但是补0
0000013.15
>>> print('%+f' % pi) # 显示正负号
+13.149630
print
默认换行输出。如若不换行,可在末尾加上,
,例如:
>>> for i in range(0, 5):
... print i
...
0
1
2
3
4
>>> for i in range(0, 5):
... print i,
...
0 1 2 3 4