Python从键盘输入时使用input()方法,在一行中若需要接收多个内容(空格分开)的时候就需要用到map 函数。查了一下看到如下方法:
“输入一个数字 m = int(input())
输入两个数字是 m, n = map(int, input().split())
”
在IDLE中试了一下,出现如下报错:
之后查了input()在Python 2 和Python 3 之间的区别,发现问题确实出在这里。
- Python 3 里面整合了Python 2中的 input()和 raw_input(),所以在Python 3 里面安上述也法是可以正确运行的.
- 但是在Python 2 中: raw_input( ) 将所有输入作为字符串看待,返回字符串类型。而input( ) 只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
看到这里 我将原来写在 Python 2 中的 n, q = map(int, input (“please n and q:”).split()) 中的input()更改为 raw_input(),可正常运行。
总结:Python 2 中使用 raw_input() 可以解决从键盘一行输入多个数的EOF报错。