如何在python中生成20个随机数

如何在python中生成20个随机数,python,random,integer,Python,Random,Integer,我试图在python中生成20个随机数,并指出它们是奇数还是偶数,这就是我目前所拥有的: import random def main(): i = 0 num = 0 #while loop while i<20: #user enters input num = random.randint(input("enter lowest number:\t")) i = random.randint(inp

我试图在python中生成20个随机数,并指出它们是奇数还是偶数,这就是我目前所拥有的:

import random

def main():

    i = 0
    num = 0

    #while loop
    while i<20:

       #user enters input
        num = random.randint(input("enter lowest number:\t"))
        i = random.randint(input("enter highest number:\t"))

        #if else
        if num>=0 and num<=100:

            num = num+i

            i = i +1

            print(num)

        else:
            print("error")

        #for loop
        for i in range(num):


main()
随机导入
def main():
i=0
num=0
#while循环
当i=0且num时,使用


我宁愿完全重写该函数

import random


def main():
    lower = int(raw_input("enter lowest number: "))
    upper = int(raw_input("enter highest number: "))
    for i in range(20):
        num = random.randint(lower, upper)
        print(num)
main()
我认为您将能够轻松地修改它以满足您的需要:)

编辑:按照建议,我重写了函数,这样它就不会在for循环的每一步都要求下限和上限,而是在进入for循环之前只要求一次。这就不那么烦人了,而且可能是你想做的事情

def odd_or_even(num):
    if num % 2 == 0:
        print(num, 'is even')
    else:
        print(num, 'is not even')

lst = [random.randint(lower, upper) for x in range(20)]
for num in lst:
    print(even_or_odd(num))
这是一个工作计划,但如果你不想费心去弄清楚这一点,我怀疑你会非常喜欢这门课,因为它只会变得更加困难

import random
import time

start = time.time()
for i in range(10000):
    random.choice([i for i in range(1000)])
print 'random.choice()', time.time() - start

start = time.time()
for i in range(10000):
    random.randint(0,1000)
print 'random.randint()', time.time() - start

start = time.time()
for i in range(10000):
    int(random.random() * 1000)
print 'random.random()', time.time() - start
[out]:

random.choice() 0.849874973297
random.randint() 0.015105009079
random.random() 0.00372695922852

首先询问用户最上面和最下面的数字, 然后使用生成器获取数字

import random

def randnums(number, startnum=0, endnum=100):
    for i in range(1, number + 1):
         yield random.randint(startnum, endnum)

def getparams():
    return int(input('Lowest number: ')), int(input('Highest number: '))

def main():
    bottom, top = getparams()
    nums = list(randnums(20, startnum=bottom, endnum=top))
    for number in nums:
        print(number, ',', sep='')
if __name__ == '__main__':
    main()

如果您在Python 2.x上运行此功能,请使用
raw\u input
。啊,对不起,从OP的内容中复制意大利面,谢谢@matthiaspopular:
range(20)
。。。使用此函数,每次循环运行时,您都必须输入最低/最高数字。如何使循环连续,您只需在第一次运行时输入2个数字,它将为您提供20个随机数字??user3250465:我只是以这种方式重写了它,正如Inauld所建议的那样,Hanks man:)你知道如何判断每个数字是奇数还是偶数吗?你会如何判断一个数字是奇数还是偶数?如果将一个数除以2,余数为0,则该数为偶数。现在去把它编码好,说得好。我认为0被认为是偶数。我错了吗@弗洛里斯:绝对零就是平!由于
1
未能通过
num%2==0
测试,因此在
if
语句中根本不需要第一个分支。这是什么答案?
import random

def randnums(number, startnum=0, endnum=100):
    for i in range(1, number + 1):
         yield random.randint(startnum, endnum)

def getparams():
    return int(input('Lowest number: ')), int(input('Highest number: '))

def main():
    bottom, top = getparams()
    nums = list(randnums(20, startnum=bottom, endnum=top))
    for number in nums:
        print(number, ',', sep='')
if __name__ == '__main__':
    main()