Python终端游戏开发:while循环逻辑异常排查求助
问题分析与解决方案
初始代码的错误原因与修复
初始代码的核心问题是类型不匹配:你将输入转换为整数类型int后,却用字符串"1"、"2"进行相等判断——整数与字符串永远不会相等,导致两个if语句完全不会触发,输入1或2后程序直接结束。
修复后的代码只需将判断条件改为整数即可:
# 处理非整数输入的循环 while True: try: question1 = int(input("1. oui 2. non \n")) except ValueError: slow_type("essai un nombre ou de répondre la question.") continue else: break # 根据输入执行对应逻辑 if question1 == 1: slow_type("Alors, voici mon histoire...") if question1 == 2: slow_type("D'accord.")
优化后函数的使用说明
你重构的choose_wisely函数已经实现了通用的多选项输入校验逻辑,能自动处理无效输入并循环提示,使用时只需传入选项列表即可:
# 调用示例(对应原场景) choices = ["oui", "non"] selected_option = choose_wisely(choices) if selected_option == 1: slow_type("Alors, voici mon histoire...") elif selected_option == 2: slow_type("D'accord.")
函数会自动生成带编号的选项列表,持续校验输入是否为有效范围内的整数,直到用户输入正确才返回选中的编号。
内容的提问来源于stack exchange,提问作者Beans
相关产品推荐
相关产品推荐

