使用 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
在 Windows 上,您应该使用 Ctrl-Z 而不是 Ctrl-D。此外,这应该是换行符的第一个字符,并且在 Ctrl-Z 之后也应该有一个换行符(输入)。 Ctrl-Z后面可能还有其他字符,会被忽略
因此,在 Windows 上强制 EOL 的最短序列是:Enter,Ctrl-Z,Enter。
我从经验中知道这一点,并且确实找到了一些说明相同的答案或评论,但我找不到任何对此进行解释的官方文档。如果我找到它,我会把它添加到这个答案中。
(如果您知道此行为的可靠来源,请发表评论。)
我有这部分 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
在 Windows 上,您应该使用 Ctrl-Z 而不是 Ctrl-D。此外,这应该是换行符的第一个字符,并且在 Ctrl-Z 之后也应该有一个换行符(输入)。 Ctrl-Z后面可能还有其他字符,会被忽略
因此,在 Windows 上强制 EOL 的最短序列是:Enter,Ctrl-Z,Enter。
我从经验中知道这一点,并且确实找到了一些说明相同的答案或评论,但我找不到任何对此进行解释的官方文档。如果我找到它,我会把它添加到这个答案中。
(如果您知道此行为的可靠来源,请发表评论。)