[英]Running a python script with inputs from within Jupyter Notebook
我创建了以下名为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
造成此异常的原因可能是什么?
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
当您运行的细胞。( 我不知道)。
但是input()
将在jupyter notebook
中jupyter notebook
运行。 我建议您在获取键盘输入时使用input()
而不是sys.stdin.read()
。
一种更简单的方法是使用raw_input
代替stdin.read
:
tokens = raw_input().split()
a = int(tokens[0])
b = int(tokens[1])
print(a + b)
要么:
print(sum(int(i) for i in input().split()))
输出示例:
1 1
2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.