Python石头剪刀布游戏仅识别q输入 其余合法输入循环无响应问题
石头剪刀布程序故障修复方案
故障原因
- 你代码里的电脑随机选值、胜负判定、分数统计等所有核心逻辑,全部没有缩进在
while True循环体内,只有输入q退出循环后才会执行一次 - 输入
Rock转小写后为合法值rock,通过校验后循环内没有可执行的后续逻辑,直接进入下一轮迭代,就会重新弹出输入提示,看起来就像输入不被识别
修复后完整代码
import random user_wins = 0 # 设置初始分数 computer_wins = 0 options = ["rock", "paper", "scissors"] while True: user_input = input('输入Rock/Paper/Scissors,或输入Q退出: ').lower() if user_input == "q": break if user_input not in options: continue # 以下逻辑原本在循环外,现在缩进放入循环体内 random_number = random.randint(0, 2) # rock: 0 , paper: 1, scissors: 2 computer_pick = options[random_number] print('电脑出了:', computer_pick + "。") if user_input == "rock" and computer_pick == "scissors": print('石头砸坏剪刀...你赢了!') user_wins += 1 elif user_input == "paper" and computer_pick == "rock": print('布包住石头...你赢了!') user_wins += 1 elif user_input == "scissors" and computer_pick == "paper": print('剪刀剪碎布...你赢了!') user_wins += 1 else: print("你输了") computer_wins += 1 print("你一共赢了", user_wins, "次。") print("电脑一共赢了", computer_wins, "次。") print('再见')
内容的提问来源于stack exchange,提问作者fresno_daniel
相关产品推荐
相关产品推荐

