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

Python彩票游戏重复号码问题:如何生成不重复随机数?

解决Python彩票游戏重复幸运数字问题

你的核心问题是生成幸运数字时出现重复,导致游戏逻辑混乱,下面提供两种高效的解决方式:

方法1:使用random.sample(推荐)

random.sample可以直接从指定范围内选取不重复的随机数,是解决这类问题最简洁的方法,替换原代码中生成幸运数字的循环即可:

# 替换原有的幸运数字生成循环
luckynumber = random.sample(range(1, 50), 6)

这个方法会自动确保6个号码唯一,无需手动检查,代码简洁且高效。

方法2:手动检查重复(适合理解底层逻辑)

如果你想手动实现重复校验逻辑,可以在生成每个随机数后判断是否已存在于列表中,若存在则重新生成,直到凑够6个不重复的号码:

luckynumber = []
while len(luckynumber) < 6:
    randomnumber = random.randint(1, 49)
    if randomnumber not in luckynumber:
        luckynumber.append(randomnumber)

优化后的完整代码

另外,原代码中统计正确号码的逻辑存在漏洞(若用户输入重复号码,会重复计数),可以用集合交集来更准确统计:

import random

luckynumber = []
inputnumber = []

print('Welcome to the game!')
print('Please insert 6 numbers from 1 to 49:')

# 生成不重复的幸运数字
luckynumber = random.sample(range(1, 50), 6)

# 获取用户输入
for _ in range(6):
    player_number = int(input())
    inputnumber.append(player_number)

# 统计正确号码数量(集合交集方式更准确)
correct_numbers = len(set(luckynumber) & set(inputnumber))

print(f'You guessed {correct_numbers} correct numbers!')
print(f'Original correct numbers: {luckynumber}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:05:04