我创建了以下名为week1_1.py
的Python脚本:
import sys
input = sys.stdin.read()
tokens = input.split()
a = int(tokens[0])
b = int(tokens[1])
print(a + b)
但是,当我从Jupyter Notebook中调用它时,出现以下异常:
%run -i week1_1 2 3
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
D:\Mint_ns\week1_1.py in <module>()
8 input = sys.stdin.read()
9 tokens = input.split()
---> 10 a = int(tokens[0])
11 b = int(tokens[1])
12 print(a + b)
IndexError: list index out of range
此异常可能是什么原因?
答案 0 :(得分:1)
input_str = input()
tokens = input_str.split()
a = int(tokens[0])
b = int(tokens[1])
print(a + b)
ouput:
1 2
3
您可以使用input()
代替sys.stdin.read()
。
为什么不能使用sys.stdin.read()
? sys.stdin.read()
会读入stdin,直到命中EOF
。因此,我猜测,当您在jupyter notebook
中运行它时,在运行单元格时它将显示为EOF
。(我不确定。)< / p>
但是input()
将在jupyter notebook
中正常运行。我建议您在获取键盘输入时使用input()
而不是sys.stdin.read()
。
答案 1 :(得分:1)
答案 2 :(得分:0)
一种更简单的方法是使用raw_input
而不是stdin.read
:
tokens = raw_input().split()
a = int(tokens[0])
b = int(tokens[1])
print(a + b)
答案 3 :(得分:0)
OR:
print(sum(int(i) for i in input().split()))
示例输出:
1 1
2