Python 随机奇数列表

Python 随机奇数列表,python,Python,我试图得到一个介于0和100之间的奇数列表。列表的长度由输入数字决定 它应该是最多50个元素的列表。如果用户输入更高的值,则消息为“错误”。这样可以,但是当输入的值低于50时,我没有得到任何其他信息。我找不到错误 num\u impares表示带有奇数的列表向量 import random elementos = int(input("how many elements should be?")) num_impares = [] i

我试图得到一个介于0和100之间的奇数列表。列表的长度由输入数字决定

它应该是最多50个元素的列表。如果用户输入更高的值,则消息为“错误”。这样可以,但是当输入的值低于50时,我没有得到任何其他信息。我找不到错误

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)