提问人:MSaudi 提问时间:9/28/2021 最后编辑:wovanoMSaudi 更新时间:9/30/2021 访问量:92
使用 stdin.read() 从控制台读取值时出现问题
Problem when reading values from console using stdin.read()
问:
我有这部分 python 代码,应该从屏幕读取输入值。 当它运行时,它会永远运行。我根据搜索结果尝试了 CTRL+D,但它不起作用。此代码已给出,当我将代码提交给在线评分器时,它可以工作,但在我的 Windows 机器上不起作用。
if __name__ == "__main__":
data = list(map(int, sys.stdin.read().split()))
n, capacity = data[0:2]
values = data[2:(2 * n + 2):2]
weights = data[3:(2 * n + 2):2]
opt_value = get_optimal_value(capacity, weights, values)
print("{:.10f}".format(opt_value))
示例输入应为:
3 2
20 50
12 12
51 51
答:
0赞
wovano
9/30/2021
#1
在 Windows 上,您应该使用 Ctrl-Z 而不是 Ctrl-D。此外,这应该是换行符的第一个字符,并且 Ctrl-Z 之后也应该有一个换行符 (enter)。Ctrl-Z 后面可能还有其他字符,这些字符将被忽略。
因此,在 Windows 上强制执行 EOL 的最短序列是:Enter、Ctrl-Z、Enter。
我从经验中知道这一点,并且确实找到了一些相同的答案或评论,但我找不到任何解释这一点的官方文档。如果我找到它,我会把它添加到这个答案中。
(如果您知道此行为的可靠来源,请发表评论。
评论