You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:36:03