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
相关产品推荐
相关产品推荐

