Python 随机数生成器仅打印一个数字

Python 随机数生成器仅打印一个数字,python,list,random,Python,List,Random,这是我目前掌握的代码: from quick_pick import quick_pick def main(): LIMIT = 67 number = 9 list_1 = []*number quick_pick(number, LIMIT, list_1) print (list_1) main() import random def quick_pick(n,limit,lottery): main_cou

这是我目前掌握的代码:

 from quick_pick import quick_pick
    def main():
     LIMIT = 67
     number = 9
     list_1 = []*number
     quick_pick(number, LIMIT, list_1)
     print (list_1)
     main()

import random
def quick_pick(n,limit,lottery):
    main_count = 0
    while main_count <n:
        lotto_numbers = random.randint(1, limit)
        if lotto_numbers not in lottery:
            lottery.append(lotto_numbers)
            main_count += 1
            return (lottery * n)
从快速拾取导入快速拾取
def main():
极限=67
数字=9
列表_1=[]*编号
快速选择(编号、限制、列表1)
打印(列表1)
main()
随机输入
def快速选择(n、限制、抽签):
主计数=0
当主计数时,您可以使用来选择数字:

limit = 67
n = 9
print(random.sample(range(1, limit + 1), n)) # [49, 32, 66, 57, 25, 9, 22, 4, 48]

修复缩进,丢失
*n
,和viola(!),代码可以工作:

def quick_pick(n,limit,lottery):
    main_count = 0
    while main_count <n:
        lotto_numbers = random.randint(1, limit)
        if lotto_numbers not in lottery:
            lottery.append(lotto_numbers)
            main_count += 1
    return lottery

>>> quick_pick(number,LIMIT,list_1)
[44, 43, 62, 13, 11, 25, 36, 29, 15]
def快速拾取(n、限制、抽签):
主计数=0
而主计数>>快速拾取(数量、限制、列表1)
[44, 43, 62, 13, 11, 25, 36, 29, 15]

正如您所看到的,问题是您在找到要添加到您的
彩票中的第一个号码后返回
。你需要等到它被填满。同样,乘以
n
(9)也没有多大意义。

另一种获得服从某个特定分布的随机数的方法是直接使用概率分布

例如:

import numpy as np

nums = np.random.uniform(-1, 1, (100, 2))

这将从基础均匀分布(范围内的所有数字都具有相同的被拾取概率)中生成范围(-1,1)内的100个二维点。

Idk关于python的内容很多,但为什么在同一个函数中递归和循环?Idk关于python的内容很多,但是为什么你在第一次成功抽奖时返回彩票号码,而不是让循环在返回前完成?这很好(!),但我认为这是某种形式的家庭作业,所以使用它将是“作弊”:p