关于创建以偶数和赔率分开的随机列表的家庭作业问题

2024-04-19 19:41:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我尝试导入random并要求列表范围为0到用户输入15个数字,但我似乎无法让代码与其他定义因子上的输入一起工作

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

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

Tags: 代码用户from列表定义检查用户数字整数
2条回答

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

首先,如上所述,您希望在循环中使用除i以外的其他变量,因为您希望保留用户给您的限制。你知道吗

其次,您希望从0开始并在用户输入处结束,因此randint()应该从0到用户输入。你知道吗

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

第三,为了判断一个数字是偶数还是奇数,提示告诉你该怎么做。n%2意味着如果你把一个数除以2,n%2就是它的余数。如果n%2==0,则将其放入偶数数组中。如果不是,则将其放入奇数数组中。你知道吗

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

代码如下,但请理解这些更改来自何处。你知道吗

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)

编辑:一些语法错误

这里有一个使用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

相关问题 更多 >