带有奇数和偶数计数器的100个随机数



我有以下任务:

在本章中,您看到了一个如何编写算法的示例,该算法可以确定一个数字是偶数还是奇数。编写一个程序,生成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()

编辑:我不应该使用列表,所以如果有办法不用列表,请告诉我!

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")
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)

所以你可以做这种事。

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))

您可以在没有列表的情况下完成此操作,但让我们这样做吧,因为您的问题可能需要这样做。

首先,请注意,您的代码只创建了一个包含一个随机数的列表。如果您想用100个随机数填充列表,则必须执行类似的操作:

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

然后,使用number % 2 == 0检查数字是否为偶数(即,数字除以2的余数为0。这将返回true或false)并递增相应的计数器:

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)
#!/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()

我在同一个班!这个代码对我有效。

import random
def main ():
    counter = 1
    even_numbers = 0
    odd_numbers = 0
    while counter < 101:
        a = random.randint(1,100)

        if a % 2 == 0:
            even_numbers += 1
        else:
            odd_numbers += 1
        counter += 1
    if counter == 101 :
        reveal_total(even_numbers, odd_numbers)
def reveal_total(even_numbers, odd_numbers):
    print("This many evens : ", even_numbers)
    print("This many odds : ", odd_numbers)
main()

最新更新