Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在使用EOF异常中断初始input()后,如何启动新的input()实例?_Python 3.x_Input_Stdin - Fatal编程技术网

Python 3.x 在使用EOF异常中断初始input()后,如何启动新的input()实例?

Python 3.x 在使用EOF异常中断初始input()后,如何启动新的input()实例?,python-3.x,input,stdin,Python 3.x,Input,Stdin,我需要从用户处获取多行输入-使用while循环,但在EOF“传递”到新输入()时启动另一个输入()时出现问题 我尝试过使用sys stdin和func()的组合,但不确定为什么会发生这种情况 为True时: 尝试: 列表=输入() 除EOFError外: 打破 input('input2:')1)不要将list用作变量名。这是python中的保留字。 2) 您可以捕获键盘中断,它将在Ctrl+C之后停止循环,并捕获Ctrl+D后停止循环: while True: try:

我需要从用户处获取多行输入-使用while循环,但在EOF“传递”到新输入()时启动另一个输入()时出现问题

我尝试过使用sys stdin和func()的组合,但不确定为什么会发生这种情况

为True时:
尝试:
列表=输入()
除EOFError外:
打破
input('input2:')
1)不要将
list
用作变量名。这是python中的保留字。
2) 您可以捕获
键盘中断
,它将在
Ctrl+C
之后停止循环,并捕获
Ctrl+D
后停止循环:

while True:
    try:
        list = input()
    except (EOFError, KeyboardInterrupt):
        break
input('input2:')
或者,您可以初始化循环,并让循环在设置的条件下退出:

my_input = input()

while my_input: # Break if nothing was inputted
    print(f"Inputed: {my_input}")
    my_input = input()

input('input2:')

您好,谢谢您的建议-看起来键盘中断被捕获了,但仍将被传递到输入(“input2”)嗯…@Vvega将被传递到
input2
是什么意思?except捕捉
键盘中断
,并将放弃该中断,除非添加
提升
。您使用的是什么输入,您期望的是什么输出?当我执行command+D(我在macOS上)时,中断也会中断输入(“input2”)。所以它会在我真正输入任何东西之前关闭。@Vvega for
Ctrl+D
那么你是对的,它仍然有效。看我的更新。谢谢!问题似乎出在Pycharm上,但编译成exec似乎正在工作:D