关于创建偶数和几率分开的随机列表的作业问题

时间:2019-04-02 18:34:37

标签: python algorithm

  1. 向用户询问随机数的限制。列出从0到用户限制的15个随机整数。
  2. 将奇数和偶数放入两个列表中。同时打印两个列表和两个列表中的最大值。
  3. 提示:x%y返回除法的余数。如果x%2 == 0,则数字为偶数。 检查用户的输入。如果输入不是正整数,则要求输入一个新的整数。

我尝试导入随机数据,并要求用户输入15个数字的列表范围为0,但我似乎无法让代码在其他定义因素上与输入配合工作

from random import randint
i=int(input('Type the limit:  '))
numbers=[]

for i in range(15):
    n=randint(0,??)
    numbers.append(n)
    print(numbers)

2 个答案:

答案 0 :(得分:1)

您的代码中有很多问题,但是您走的路正确。

首先,如上所述,由于要保留用户给您的限制,您将要在循环中使用除i以外的其他变量。

第二,您要从0开始并在用户输入处结束,因此randint()应该从0到用户输入。

for j in range(15):
    n = randint(0,i)

第三,为了告诉数字是偶数还是奇数,提示会告诉您该怎么做。 n%2表示如果将数字除以2,则n%2将是其余数。如果n%2 == 0,则将其放在偶数数组中。如果没有,则将其放在奇数数组中。

最后,为了跟踪最大数量,只需将一个数字(greatestVal)初始化为零,然后在循环中检查随机生成的数字是否大于greatValve。

代码如下,但是请了解更改来自何处。

from random import randint
i=int(input('Type the limit:  '))
oddNumbers=[]
evenNumbers = []
greatestNumb = 0;

for j in range(15):
    n=randint(0,i)
    if n % 2 == 0:
        evenNumbers.append(n)
    else:
        oddNumbers.append(n)

    if n > greatestNumb:
        greatestNumb = n
print(oddNumbers)
print(evenNumbers)
print(greatestNumb)

编辑:一些语法错误

答案 1 :(得分:0)

这是使用numpy的解决方案:(我不理解您的第三部分)

import numpy as np
userlimit = int(input('Type the limit:  '))
list1 = np.random.randint(0, userlimit + 1, 15)
oddlist = [x for x in list1 if x%2!=0]
evenlist = [x for x in list1 if x%2==0]
print(f'event list: {evenlist} ')
print(f'length of evenlist:{len(evenlist)}, its max number = {max(evenlist)}')
print(f'odd list: {oddlist} ')
print(f'length of oddlist:{len(oddlist)}, its max number = {max(oddlist)}')

输出:

Type the limit:  >? 10
event list: [6, 4, 4, 6, 8] 
length of evenlist:5, its max number = 8
odd list: [1, 3, 3, 5, 1, 5, 3, 1, 7, 1] 
length of oddlist:10, its max number = 7