在Jupyter Notebook中使用Python3标准输入sys.stdin

在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]

问题解决!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值