Python交互式学生管理程序无法正常退出问题求助
问题排查与解决
问题原因
程序输入4后无法终止的核心问题是循环条件未被正确终止:
- 初始
ans = True进入循环,后续ans被赋值为用户输入的字符串(如"4") - 输入"4"时,代码仅打印"Goodbye",但未修改
ans的值。此时ans是字符串"4",Python中所有非空字符串都会被判定为True,循环因此持续执行
修复方案
提供两种简单有效的修复方式:
方式1:将ans设为False终止循环
在ans == "4"的分支中添加ans = False,让循环条件不成立:
ans = True while ans: print(""" 1.Add a Student 2.Delete a Student 3.Look Up Student Record 4.Exit/Quit """) ans = input("What would you like to do? ") if ans == "1": print("\nStudent Added") elif ans == "2": print("\nStudent Deleted") elif ans == "3": print("\nStudent Record Found") elif ans == "4": print("\nGoodbye") ans = False # 修改ans为False,终止循环 elif ans != "": print("\nNot Valid Choice Try again")
方式2:用break直接跳出循环
在ans == "4"的分支中添加break语句,直接终止当前循环:
ans = True while ans: print(""" 1.Add a Student 2.Delete a Student 3.Look Up Student Record 4.Exit/Quit """) ans = input("What would you like to do? ") if ans == "1": print("\nStudent Added") elif ans == "2": print("\nStudent Deleted") elif ans == "3": print("\nStudent Record Found") elif ans == "4": print("\nGoodbye") break # 直接跳出循环 elif ans != "": print("\nNot Valid Choice Try again")
注:原代码中print语句的换行符格式错误(如print(" Student Added")),上述修复代码已统一修正为print("\nStudent Added"),避免语法报错。
内容的提问来源于stack exchange,提问作者Sphnix Ken
相关产品推荐
相关产品推荐

