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

Python调用random.choice始终返回False的问题如何解决

问题原因

  • 你执行random.choice([True,False])后没有将随机得到的结果保存到变量中,后续判断条件写的是if random.choice == True,是直接拿random模块的choice函数对象和布尔值True做比较,函数对象永远不等于True,所以永远会走else分支,得到一直输出False的结果。
  • 就算修正了取值问题,原代码两次判断都重新调用random.choice,会出现前一次判定赢、后一次判定输的逻辑矛盾,两次随机结果是独立的。
  • 输出余额的字符串没有加f前缀,{answer1*2}不会被正确解析为变量计算结果,只会原样输出文本。
  • 额外注意:你用了set作为变量名,而set是Python的内置类型关键字,覆盖内置名会带来后续潜在的运行错误,建议更换变量名。

修正后的代码

import random

# 替换set变量名避免覆盖内置类型
prize_pool = {'key1':50, 'key2':100, 'key3':500}

answer = int(input('你要下注的数字是: '))
answer1 = int(input('你的下注金额是: '))

# 只做一次随机,结果保存到变量中复用
result = random.choice([True, False])

if result:
    print('你赢了!')
    # 加f前缀启用f-string格式化,正确计算金额
    print(f'你的当前余额是: {answer1*2}$')
else:
    print('你输了!')
    print('你的当前余额是: 0$')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:42:00