问题描述
在尝试使其成为列表代码时遇到了麻烦。我正在尝试编写一个程序,该程序将提示用户输入其待办事项列表中的项目。然后将每个项目添加到列表中。当用户不输入任何内容时,程序将在两列中显示待办事项列表。问题是,尽管输入循环应具有try / except块,但该块将从循环中退出。一开始应该看起来像这样:(间距很奇怪,我知道如何正确地在pyscriptor中间隔)
try:
item = input('Enter an item for your to-do list. ' + \
'Press <ENTER> when done: ')
*… Python code …*
if len(item) == 0:
*#Needed to break out of the loop in interactive mode*
break
except EOFError:
break
如果任何人甚至从入门入手都有任何提示,将非常有帮助。
解决方法
让我们尝试将其分为步骤:
-
您想要一个在命令上中断的无限循环吗?
min
幸运的是,当您按Ctrl + C时,终端和python解释器已经提供了进程终止功能,因此您无需实现该功能。但是,如果您想进行一些破坏性清理,则可以捕获
while True:
:KeyboardInterrupt
-
然后您希望在每次循环迭代中输入
try: while True: except KeyboardInterrupt: print('exiting program,bye!') sys.exit(0)
-
最后,您根据输入确定操作:
while True: inp = input('what do?')
上面的程序将在输入为空时打印任务,否则将输入添加到待办事项列表。您可以按TODO = []
while True:
inp = input('add task: ')
if not inp.strip():
for task in TODO:
print(f'- {task}')
else:
TODO.append(inp)