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

Python彩票号码生成器if语句失效:生成重复号码问题排查

问题分析与解决

核心问题

你的代码里有两个关键错误导致重复:

  • random.choices()(你写的random. Choices()多了空格且首字母大写,本身是语法错误)返回的是列表类型,比如生成数字8时,y实际是[8],而你的z里存的是单个整数。所以if y in z是在判断[8]这个列表是否存在于z的整数元素里,永远不会成立,自然检测不到重复。
  • 就算能检测到重复,你用break会直接终止整个循环,而不是跳过当前重复的数继续生成下一个,逻辑完全错误。

修正后的手动循环版代码

import random
i = 0
z = []
while i < 6:
    y = random.randint(1, 49)  # 生成单个整数,而非列表
    if y in z:
        continue  # 重复就跳过,进入下一次循环
    z.append(y)
    i += 1
print(z)

更简洁的写法

Python的random模块自带生成不重复随机样本的方法,直接用random.sample一步就能完成需求,不用自己写循环:

import random
z = random.sample(range(1, 50), 6)
print(z)

这个方法会从range(1,50)里随机挑选6个不重复的元素,完全符合彩票号码的生成要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:35:23