python随机彩票号码生成器游戏

Posted

技术标签:

【中文标题】python随机彩票号码生成器游戏【英文标题】:python random lottery number generator game 【发布时间】:2019-07-17 16:32:30 【问题描述】:

我必须制作一个游戏,就像彩票一样,我的程序从数字 1-50 的列表中生成 5 个随机数字,从数字列表中生成一个额外的数字 1-20,并将它们组合成一个最终列表,内容如下: (20, 26, 49, 01, 11, + 06) 其中两个数字永远不会重复,例如 (22, 11, 34, 44, 01, + 22)

下面附上的是我写的代码,但我如何让它永远不会重复两个或更多数字,并将 + 添加到我的列表中,而没有“”符号

输入: 随机导入

a = list(range(1,51))
b = random.randint(1, 20)

temp = []

for i in range(5):
  random.shuffle(a) 
  temp.append(random.choice(a[:5])) 
temp.append('+')
temp.append(b)

print(temp)

输出:

[14, 12, 3, 16, 23, '+', 9]

【问题讨论】:

【参考方案1】:

如果没有',则不能添加+ - 它们将+标记为字符串。

另外:你打乱你的列表 - 只需取前 5 个值 - 它们是随机的,你的列表不包含任何欺骗,所以你是黄金:

nums = list(range(1,51))
random.shuffle(nums)
five_nums = nums[:5]
print(five_nums)     # [44, 23, 34, 38, 3]

为了简单起见,请使用:

import random

# creates 5 unique elements from 1..50 and adds a + and a [0-19]+1 number
randlist = random.sample(range(1,51),k=5) + ["+", random.choice(range(20))+1]
print(randlist)

现在您得到了混合数字和字符串 - 您可以通过以下方式创建组合字符串:

print("You drew       ".format(*randlist))

创建一个类似

的字符串
[48, 2, 9, 6, 41, '+', 8]

You drew 48 2 9 6 41 + 8

独库:

random.sample (draw without putting back)

【讨论】:

【参考方案2】:

您可以尝试以下方法:

import random
randList, run = [], 0
while run < 6:
   number = random.randint(1,51)
   if number not in randList:
        if run == 5:
            randList.append('+'+str(number))
            break
        randList.append(number)
        run += 1
print(randList)

列表中的字符串不能没有引号,但是,如果要打印列表中的每个项目(使用 for 循环或连接),引号就不会出现。

【讨论】:

【参考方案3】:

此代码将生成一个包含 7 个随机数的列表

import random

def main():

    numbers = []

    for num in range(7):

        num = random.randrange(50)

        numbers.append(num)

    print(numbers)

main()

【讨论】:

【参考方案4】:

它没用,因为你需要拥有

import random

【讨论】:

OP 在input: 之后写了import random,以防你没看到

以上是关于python随机彩票号码生成器游戏的主要内容,如果未能解决你的问题,请参考以下文章

java的彩票

带有 tkinter gui 的彩票号码生成器和检查器

小白量化彩票实战彩票号码快速生成组合及利用数据库生成彩票号码组合

使用Python生成双色球号码

Java数组的运用

python 随机生成号码