生成100个随机数,并计算奇数和偶数数量

-1 投票
6 回答
15100 浏览
提问于 2025-05-01 05:16

我有一个作业要完成:

在这一章中,你看到了一个例子,展示了如何编写一个算法来判断一个数字是偶数还是奇数。现在请写一个程序,生成100个随机数字,并统计其中有多少个是偶数,多少个是奇数。

这是我目前的进展,我能生成100个数字,但我不知道怎么统计偶数和奇数的数量。这个程序还需要包含一个返回布尔值的函数。

我们只能使用循环、if-elif-else、函数和其他一些基本的东西。

import random

NUMBER_LIST = [random.randint(0,1000)]

def main():

    for numbers in range(100):

        number = print(NUMBER_LIST)
        number

    is_even(number)

    print('The total amount of even numbers is', even_count)
    print('The total amount of odd numbers is', 100 - even_count)   

def is_even(number):

    even_count = 0

    for number in NUMBERS_LIST:
        if (number % 2):
            even_count += 1

    return even_count

main()

编辑:我不能使用列表,所以如果有不使用列表的方法,请告诉我!

暂无标签

6 个回答

0
#!/usr/bin/env python3

import random
def main(n=100):
    NUMBER_LIST = [random.randint(0,1000) for x in range(0,n)]
    odds = len(list(filter(lambda x: x % 2, NUMBER_LIST)))
    print("Odd Numbers: {}\nEven Numbers: {}".format(odds, n-odds))

if __name__ == "__main__":
    main()

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

0

你可以不使用列表来完成这个任务,但我们还是用列表,因为你的问题可能需要这样做。

首先,注意到你的代码只创建了一个包含一个随机数的列表。如果你想要填充一个包含100个随机数的列表,你需要做类似下面的事情:

NUMBER_LIST = []
i = 0
while i < 100:
    number = random.randint(0, 1000)
    NUMBER_LIST.append(number)
    i += 1

接下来,你需要检查这个数字是否是偶数,可以用 number % 2 == 0 来判断(这意味着把数字除以2后,余数是0。如果是这样,结果会返回真,否则返回假),然后增加相应的计数器:

NUMBER_LIST = []
# initialize both counters
evens = 0
odds = 0
i = 0
while i < 100:
    number = random.randint(0, 1000)
    NUMBER_LIST.append(number)
    if number % 2 == 0:
        evens += 1
    else:
        odds += 1
    i += 1

最后,你只需要打印出计数的结果:

print("The number of even numbers is: " + evens)
print("The number of odd numbers is: " + odds)

完整的代码就会是:

import random
NUMBER_LIST = []
evens = 0
odds = 0
i = 0
while i < 100:
    number = random.randint(0, 1000)
    NUMBER_LIST.append(number)
    if number % 2 == 0:
        evens += 1
    else:
        odds += 1
    i += 1
print("The numbers were: " + str(NUMBER_LIST))
print("The number of even numbers is: " + evens)
print("The number of odd numbers is: " + odds)

如果不使用列表的话:

import random
evens = 0
odds = 0
i = 0
while i < 100:
    number = random.randint(0, 1000)
    if number % 2 == 0:
        evens += 1
    else:
        odds += 1
    i += 1
print("The number of even numbers is: " + evens)
print("The number of odd numbers is: " + odds)
0
import random

NUMBER_LIST = [random.randint(0,1000)]
even = 0;
odd = 0;
for numbers in range(100):
    if (numbers%2 == 1):
        odd = odd+1
    if (numbers%2 == 0):
        even = even+1
print('number of evens is: ',even)
print('number of odds is: ',odd)

所以你可以这样做。

0
from random import randrange

even = 0
for i in range(100):
    num = randrange(1000)
    if num % 2 == 0:
        even += 1

print('There were {0} even numbers and {1} odd numbers.'.format(even, 100-even))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

1
import random

def main():
    numberList = []  # create an empty list, to add 100 random ints to
    for i in range(100):
        numberList.append(random.randint(1,1000))  # add a random int

    # now, numberList has 100 random numbers in it

    # keep track of how many odd numbers
    oddCount = 0

    # loop through numberList
    for number in numberList:
        if number%2 == 1:  # number is odd
            oddCount += 1

    evenCount = 100 - oddCount  # if a number is not odd, it is not even

    print("There are", oddCount, "odd numbers, and", evenCount, "even numbers")

好的,现在我们有了那个写死的版本,接下来我们来试试一种更灵活的方法,这种方法可以让你尽可能多地指定各种内容:

def main(numNumbers, smallestNumber, biggestNumber):
    numberList = []
    for i in range(numNumbers):
        numberList.append(random.randint(smallestNumber, biggestNumber))
    oddCount = 0
    for number in numberList:
        if number%2:  # oh look, I didn't have to do the `== 1` part
            oddCount += 1
    evenCount = numNumbers - oddCount
    print("There are", oddCount, "odd numbers, and", evenCount, "even numbers")

撰写回答