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

类石头剪刀布Python游戏平局判定逻辑失效问题求助

故障排查与修复

核心问题

  • print()返回值赋值错误:computer_choice = print(random.randint(1, 3))中,print()仅负责输出内容,它的返回值是None,导致computer_choice存储的是None,永远无法和用户输入的字符串匹配,这是平局判断失效的根本原因。
  • 类型不匹配:用户输入的your_choice是字符串(如"2"),而random.randint(1,3)返回整数(如2),类型不同的两个值即使数值相同也无法判定相等。

修复后的完整代码

import random

# 规则:2赢1,3赢2,1赢3

your_choice = input("1, 2 or 3?\n").lower()
# 生成电脑随机选择并转为字符串,和用户输入类型统一
computer_choice = str(random.randint(1, 3))
# 单独打印电脑选择
print(f"Computer chose: {computer_choice}")

# 平局判断
if your_choice == computer_choice:
    print("you tied!")
# 胜利判断
elif (your_choice == "2" and computer_choice == "1") or \
     (your_choice == "3" and computer_choice == "2") or \
     (your_choice == "1" and computer_choice == "3"):
    print("You win!")
# 失败判断
else:
    print("You lose!")

关键修复点

  • 拆分电脑选择的生成与打印:先通过random.randint生成数值,转为字符串后赋值给computer_choice,再单独打印该变量,避免将print()的None返回值存入变量。
  • 统一数据类型:将电脑选择转为字符串,和用户输入的字符串类型保持一致,确保数值相等时能正确匹配。
  • 补充完整胜负逻辑,让游戏具备完整功能。

内容的提问来源于stack exchange,提问作者DeVYuvi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:05:22