Python中while循环重复打印,如何实现每次执行后重新获取用户选择?
问题根因
你当前代码的问题在于仅在进入无限循环前读取了一次用户输入的choice值,循环内部没有更新choice的逻辑,所以只要首次输入为1或2,就会永远触发对应分支的打印逻辑。
优化实现方案
不需要新增额外循环,仅需将输入读取逻辑移到while循环内部即可,每次循环都会先请求用户输入再执行对应逻辑,完全符合需求,同时还能避免首次输入非法值后程序无响应的问题。
修正后的代码如下:
while True: choice = int(input("Choose a function from 1 to 3: ")) if choice == 1: print("You chose 1") elif choice == 2: print("You chose 2") elif choice == 3: print("Shutting down") break
如果需要兼容非数字输入的异常场景,可以额外加一层try-except捕获ValueError即可。
内容的提问来源于stack exchange,提问作者CuriousCoder
相关产品推荐
相关产品推荐

