Python新手求助:如何让特定随机反应触发对应输出语句
问题修正方案
你的代码核心问题是没有保存随机选中的反应结果,直接拿原列表reaction和目标字符串比较——列表和字符串是不同类型,永远不可能相等,所以后续的胜利语句永远不会触发。同时输入判断的代码也可以简化,以下是修正后的完整代码:
import random def fight(): print("What's your move") print('A. Punch B. Submission C. Kick') response = input() reaction_list = ["Macgregor evades your move", "Macgregor punches back", "Macgregor kicks back", "Macgregor gets knocked out"] # 简化输入判断:转小写后检查是否在合法选项中 if response.lower() in ['punch', 'submission', 'kick']: # 把随机选中的反应存到变量里 selected_reaction = random.choice(reaction_list) print(selected_reaction) # 用保存的变量判断是否触发胜利语句 if selected_reaction == "Macgregor gets knocked out": print("Merryweather shocks the whole world. He wins!! Tonight was an eventful day and one man had to show he is the best in the world. Tonight the man is John Merryweather") fight()
关键修改点:
- 将随机选中的反应结果赋值给
selected_reaction变量,而非直接打印 - 后续判断使用
selected_reaction和目标字符串对比,确保逻辑成立 - 简化输入判断:通过
lower()统一输入格式,减少冗余的多条件判断
内容的提问来源于stack exchange,提问作者curryandcoding
相关产品推荐
相关产品推荐

