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

Python 100个带有奇偶计数器的随机数,python,counter,Python,Counter,我的任务如下: 在本章中,您看到了一个如何编写确定 数字是偶数或奇数。编写一个程序,生成100个随机数,并保持 这些随机数中有多少是偶数,有多少是奇数的计数 这就是我能做到的程度,我能得到100个数字,但我不知道如何将奇数和偶数相加。这应该包括一个返回值的布尔函数 我们只允许使用循环、函数和其他基本的东西 import random NUMBER_LIST = [random.randint(0,1000)] def main(): for numbers in range(100

我的任务如下:

在本章中,您看到了一个如何编写确定 数字是偶数或奇数。编写一个程序,生成100个随机数,并保持 这些随机数中有多少是偶数,有多少是奇数的计数

这就是我能做到的程度,我能得到100个数字,但我不知道如何将奇数和偶数相加。这应该包括一个返回值的布尔函数

我们只允许使用循环、函数和其他基本的东西

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

所以你可以做这类事情。

你可以在没有列表的情况下做这类事情,但既然你的问题可能需要这样做,我们就这样做吧

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

NUMBER_LIST = []
i = 0
while i < 100:
    number = random.randint(0, 1000)
    NUMBER_LIST.append(number)
    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)
随机导入
数字列表=[]
evens=0
赔率=0
i=0
当我<100时:
number=random.randint(0,1000)
编号\u列表。追加(编号)
如果数字%2==0:
evens+=1
其他:
赔率+=1
i+=1
打印(“编号为:”+str(编号列表))
打印(“偶数的数目为:“+evens”)
打印(“奇数的数量为:”+赔率)
没有名单:

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)
随机导入
evens=0
赔率=0
i=0
当我<100时:
number=random.randint(0,1000)
如果数字%2==0:
evens+=1
其他:
赔率+=1
i+=1
打印(“偶数的数目为:“+evens”)
打印(“奇数的数量为:”+赔率)

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

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()
随机导入
defmain():
计数器=1
偶数=0
奇数=0
当计数器<101时:
a=随机随机随机数(1100)
如果%2==0:
偶数+=1
其他:
奇数+=1
计数器+=1
如果计数器==101:
显示总数(偶数、奇数)
def显示总数(偶数、奇数):
打印(“此多个偶数:,偶数)
打印(“这么多赔率:,奇数)
main()

您为什么需要保留一份数字列表?此外,它们只能是奇数或偶数,因此您不需要同时跟踪这两个值。是测试一个数字是偶数还是非偶数,还是计算偶数?我不知道如何允许循环函数遍历for循环中的数字列表
numbers\u list
需要是
编号列表
。另外,if语句不需要方括号,if语句应该在
main()
中,这样就不需要循环两次,而且返回值
is_偶数()
number
不是语句,您可以删除它。我建议使用
def main(numbers=100):
然后在方法体中引用
数字
,而不是对其进行硬编码以便扩展。您只需要计算偶数或奇数,另一个可以通过100-[偶数或奇数]找到。余数是另一个的值。这将为您节省一个if语句。这是真的,但是复制和粘贴if语句太诱人了,而且我实际上不应该使用列表,我只是看到其他人用类似的任务来做,我也跟着做了。如果你能告诉我怎么做而不列出清单,那就太棒了@RussellSherrill此代码除了打印所选的数字外,几乎不使用列表:)只需删除声明、
append
行和第一次打印。
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()
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))
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()