我正在尝试在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()
因为我完全失去了,有人能够帮助我完成它
这是一个问题:
编写一个生成20个随机整数的程序,并指出每个数字是奇数还是偶数。该程序应首先要求用户输入两个整数,这两个整数将作为生成20个随机整数的范围。
答案 0 :(得分:4)
import random
lower = int(raw_input("enter lowest number:\t"))
greater = int(raw_input("enter highest number:\t"))
print [random.randint(lower, greater) for a in range(100)]
答案 1 :(得分:3)
我宁愿完全重写该功能
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循环之前只需要一次。哪个不那么烦人,也许你想做的事情。答案 2 :(得分:2)
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))
这是一个有效的工作程序,但是如果你无法解决这个问题,我怀疑你会非常喜欢这门课,因为它只会变得更加困难。
答案 3 :(得分:0)
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
答案 4 :(得分:0)
首先询问用户顶部和底部的数字, 然后使用生成器来获取数字。
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()