Python入门:Heads or Tails代码结果异常问题求助
猜硬币游戏代码错误修正
问题根源
你的代码存在核心错误:两次调用random.choice(CPU)。第一次调用是打印给用户看的电脑选项,第二次调用是用于胜负判断的选项,这两次是独立的随机生成结果,因此会出现显示的电脑选择和实际判定用的选择不一致,导致胜负结果混乱的情况。
修正后的代码
import random while True: choices = ['Heads', 'Tails'] user_input = input('Heads or Tails? ') # 仅生成一次电脑选择并存储 cpu_choice = random.choice(choices) print(f"电脑选择: {cpu_choice}") # 基于同一选择判断胜负 if user_input == cpu_choice: print('You win!') else: print('You lose!') user_input2 = input('Continue? Yes or No? ') if user_input2 != 'Yes': break
关键修改点
- 将电脑的选择只生成一次并赋值给变量
cpu_choice,打印和胜负判断都使用这个变量,确保显示与判定的是同一个结果 - 简化冗余变量定义,直接通过用户输入与
cpu_choice比较即可判断胜负 - 优化电脑选择的输出语句,让结果展示更清晰
内容的提问来源于stack exchange,提问作者Korri Bailey
相关产品推荐
相关产品推荐

