我想在运行后从命令行输入我的输入
if __name__ == "__main__": data = list(map(int, sys.stdin.readline().split())) print(data) n, capacity = data[0:2] values = data[2:(2 * n + 2):2] weights = data[3:(2 * n + 2):2]
输入示例可以是:
2 40 20 2 30 3
我的问题是: 1)如何使用我的输入创建列表数据? 2)如何让Python知道我已经完成了输入,它应该执行其余的代码?
该问题的解决方案取决于您使用的操作系统。 基本上,如果您想使用多行输入,则必须使用sys.stdin.read()代替sys.stdin.readline()。由于sys.stdin在Python中是类似文件的对象,因此该read()方法将一直读取到到达文件末尾为止。它以特殊字符EOF(文件结尾)标记。在不同的操作系统上,有不同的发送方式。
sys.stdin.read()
sys.stdin.readline()
sys.stdin
read()
EOF
在Windows上 :输入后 按Ctrl+ Z,然后按Enter:
Ctrl
Z
Enter
2 10 20 2 30 3 ^Z
在基于Unix的操作系统上 :输入后 按Ctrl+ D。不需要Enter(我相信)
D
如果您想[2, 10, 20, 2, 30, 3]从输入中获取列表,就可以了。该split()方法按空格(空格,换行符等)分割。
[2, 10, 20, 2, 30, 3]
split()