Python中如何在循环中正确使用random.choice实现随机选择?
问题修正:实现随机选择列表元素直到选中"yellow"
你的核心问题是原代码用for循环遍历列表,没有真正实现随机选择逻辑。下面是修正方案及关键说明:
原代码问题分析
原代码里的for side in sides是按顺序遍历列表元素,本质是模拟了一次顺序查找,完全没有用到随机选择逻辑。而且开头的random.choice(sides)语句没有被实际使用,属于冗余代码。
修正后的代码
import random flips = 0 sides = ["blue", "blue", "blue", "blue", "yellow", "blue"] while True: flips += 1 selected_side = random.choice(sides) if selected_side == "blue": print(f"第{flips}次翻转,结果是blue") else: print(f"第{flips}次翻转,结果是yellow!") break
代码关键说明
- 用
while True构建无限循环,直到选中"yellow"才终止循环 - 每次循环先递增
flips计数(每次随机选择都算作一次翻转操作) - 调用
random.choice(sides)从列表中随机选取一个元素,这才是满足需求的核心随机逻辑 - 根据选择结果输出包含当前翻转次数的消息
- 选中"yellow"时,输出对应消息后用
break跳出循环
示例输出(每次运行结果随机,仅作参考)
第1次翻转,结果是blue 第2次翻转,结果是blue 第3次翻转,结果是yellow!
内容的提问来源于stack exchange,提问作者IzziTho
相关产品推荐
相关产品推荐

