Skip to content

Latest commit

 

History

History
121 lines (91 loc) · 2.85 KB

输入输出.md

File metadata and controls

121 lines (91 loc) · 2.85 KB

输入输出

Python2 中提供了inputraw_inputprint等用于输入输出,但是在 Python3 中移除了raw_input,并改变了input的用法,print也从语句变成了一个函数。

输入

raw_input

raw_input的用法为:raw_input(prompt)

prompt是输入提示,raw_input会从控制台读取输入,并返回字符串类型。例如:

>>> name = raw_input('请输入姓名:')
请输入姓名:123
>>> type(name)
<type 'str'>
>>>

input

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

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