Python 如何捕获Ctrl+;D当您已在原始输入中键入soemthing,但尚未按enter键时?
我想为Python 如何捕获Ctrl+;D当您已在原始输入中键入soemthing,但尚未按enter键时?,python,raw-input,Python,Raw Input,我想为原始输入支持多行输入,以下代码中的ctrl+d仅在我位于空(新)行时有效 当前行为: 当用户键入xyz时,再次按enter键以获取新行,然后按ctrl+d 当用户键入xyz,然后按ctrl+d四次,前三次无效,第四次退出功能 预期行为: 当用户键入xyz时,按ctrl+d退出该函数(无需在空行上) def多行输入(提示=“”): 内容=[] 打印('ctrl+d以退出') i=0 尽管如此: 尝试: 如果我: 行=原始输入() 其他: 行=原始输入(提示) i+=1 除EOFErro
原始输入
支持多行输入,以下代码中的ctrl+d仅在我位于空(新)行时有效
当前行为:
- 当用户键入
时,再次按enter键以获取新行,然后按ctrl+dxyz
- 当用户键入
,然后按ctrl+d四次,前三次无效,第四次退出功能xyz
xyz
时,按ctrl+d退出该函数(无需在空行上)
def多行输入(提示=“”):
内容=[]
打印('ctrl+d以退出')
i=0
尽管如此:
尝试:
如果我:
行=原始输入()
其他:
行=原始输入(提示)
i+=1
除EOFError外:
打破
contents.append(行)
返回'\n'.join(contents).strip()
x=多行输入(“请输入文本>>”)
打印('用户输入:',x)
“当前行为是,键入xyz,然后再次按enter键以获得新行,然后按ctrl+d。”这不是代码的行为,而是用户的行为!如果键入xyz
然后键入Ctrl-D,会发生什么情况?这回答了你的问题?@ranifisch没有,对我来说,我必须按4次而不是2次。这可能是终端相关的行为,因为正是你的终端截取Control-D并将其解释为关闭标准输入的请求,而不是生成标准输入中出现的字符。