[英]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.