Python 随机奇数列表
我试图得到一个介于0和100之间的奇数列表。列表的长度由输入数字决定 它应该是最多50个元素的列表。如果用户输入更高的值,则消息为“错误”。这样可以,但是当输入的值低于50时,我没有得到任何其他信息。我找不到错误Python 随机奇数列表,python,Python,我试图得到一个介于0和100之间的奇数列表。列表的长度由输入数字决定 它应该是最多50个元素的列表。如果用户输入更高的值,则消息为“错误”。这样可以,但是当输入的值低于50时,我没有得到任何其他信息。我找不到错误 num\u impares表示带有奇数的列表向量 import random elementos = int(input("how many elements should be?")) num_impares = [] i
num\u impares
表示带有奇数的列表向量
import random
elementos = int(input("how many elements should be?"))
num_impares = []
if elementos > 50:
print ("Error")
else:
while len (num_impares)!= elementos:
for i in range (elementos-1):
if random.randrange (101) %2 !=0:
num_impares.append(i)
print (num_impares)
您可以使用以下选项:
import random
elementos = int(input("how many elements should be?"))
num_impares = []
if elementos > 50:
print ("Error")
else:
num_impares=[2*random.randrange (49)+1 for i in range( elementos)]
print (num_impares)
永远不要使用
=相反,请使用我只是建议您学习itertools
模块
导入itertools
随机输入
def奇数_发生器(开始=0,结束=99):
尽管如此:
#您可以在这里实现更高级的逻辑
x=random.randint(开始、结束)
收益率x | 1
nums_计数=50
res=list(itertools.islice(奇数生成器(),nums\u计数))
打印(镜头(分辨率),分辨率)
断言len(res)=nums\u计数
断言全部(x%2==1,表示以res表示的x)
为什么在中有一个for
,而呢?您在每次迭代中添加了太多的项,因此得到的元素超过了elementos
元素,因此在len(num_impares)!=elementos:
总是正确的……除此之外,与其生成100以下的数字并检查是否为奇数,不如生成50以下的数字(比如x)并存储2x+1来缩短表达式,它可以是生成x | 1
;)@托梅里库(很酷,谢谢)
import random
elementos = int(input("how many elements should be?"))
num_impares = []
if elementos > 50:
print ("Error")
else:
while len(num_impares) < elementos:
randnum = random.randrange(101)
if randnum %2 !=0:
num_impares.append(randnum)
print (num_impares)