在Jupyter Notebook中使用Python3标准输入sys.stdin
1.背景
在使用在线OJ,或者是牛客网等的时候,一般需要从标准输入sys.stdin读取输入数据,因此如果在Jupyter中调试的时候需要模拟这个标准输入。
而使用Jupyter Notebook的时候,发现没法直接使用使用sys.stdin。
查了好久终于找到一篇文章使用stdin的方法:
https://www.reddit.com/r/Python/comments/24b3nv/programmatically_providing_input_to/
2.使用方法
具体的方法是:
使用python3的 io模块的StringIO将字符串替换成sys.stdin
3.示例代码
实例代码如下:
from io import StringIO
import sys
doc = '''3
1 2 3
4 5 6
7 8 9
'''
sys.stdin = StringIO(doc)
n = int(sys.stdin.readline().strip())
print(n)
for i in range(n):
line_str = sys.stdin.readline().strip()
line = list(map(int,line_str.split()))
print(line)
在Jupyter中运行,输出为:
3
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
问题解决!