emmmm~之前也没注意过,今天遇到题目然后一直报异常,就去找了一下原因,共勉!!!
Python 2里面读取输入的函数是raw_input()
Python 3的是input()
,读入一个值后回车读取输入就退出了,想要一次读取多个输入,可以像下面这样:
Python2:
a, b = raw_input().split()
Python3:
a, b = raw_input().split()
通过上述观察,输出的是字符串,要想读取的是数值,可以稍微改一下,像这样:
Python2:
a, b = map(int, raw_input().split())
Python3:
a, b = map(int, input().split())
int
可以换成其它需要的类型,左边可以是任意多个变量
还可以把读取的值存到一个列表里:
Python2:
input_list = map(int, raw_input().split())
Python3:
按照上述那样输出,结果如下:
这个结果很奇怪吧,
python3中调用map函数报错<map object at 0x000001EF004D97B8>
这是英文python3中map()返回iterators类型,并非list类型,因此只需将它转换为list类型即可。
input_list =list( map(int,input().split()))
这样就OK啦~
想要读取多行可以这样:
import sys
lines = sys.stdin.read().splitlines()
读取多行也可以用readlines()
,不过读取后返回的列表lines每一项后面带有\n
,用read()
读取再调用splitlines
可以去掉后面的换行符
总之,Python2输入用raw_input(),Python3输入用input()哦!!!
今天就到这里啦,ByeBye~~~