首页 > 解决方案 > 我怎样才能找到和写一个列表偶数和奇数?

问题描述

一个程序,它读取一系列数字并计算有多少是偶数,有多少是奇数。当偶数输出可能为 4 时,列表显示偶数和奇数。我的代码有错误,这是我的代码:

odd_numbers = 0
even_numbers = 0
lst_odd =[]
lst_even =[] 
# read the first number
number = int(input("Enter a number or type 0 to stop: "))

# 0 terminates execution
while number != 0:
# check if the number is odd
   if number % 2 == 1:
        # increase the odd_numbers counter
        odd_numbers += 1
        return lst_odd
   else:
    # increase the even_numbers counter
    even_numbers += 1
    return lst_even
    # read the next number
   number = int(input("Enter a number or type 0 to stop: "))


 # print results
 print("Odd numbers count:", odd_numbers, '\n','list odd numbers is', lst_odd)
 print("Even numbers count:", even_numbers, '\n','list odd numbers is',lst_even)

我想这样做:

Enter a number or type 0 to stop:  3
Enter a number or type 0 to stop:  3
Enter a number or type 0 to stop:  4
Enter a number or type 0 to stop:  5
Enter a number or type 0 to stop:  6
Enter a number or type 0 to stop:  7
Enter a number or type 0 to stop:  8
Enter a number or type 0 to stop:  2
Enter a number or type 0 to stop:  4
Enter a number or type 0 to stop:  0
Odd numbers count: 4
list odd number is [3,3,5,7] 
Even numbers count: 5
list even number is [4,6,8,2,4]

标签: pythonif-statementwhile-loop

解决方案


使用时return,您需要函数内的代码。要添加到列表中,您append可以添加到列表中

例如

def main():
    lst_odd = []
    lst_even = [] 

    while True:
       number = input('Enter a number or "stop": ')
       if number.lower() == 'stop':
           return lst_odd, lst_even  # end the loop, return both lists
       n = int(number)
       if n % 2 == 1:
            lst_odd.append(n)
       else:
            lst_even.append(n)

odds, evens = main()
print('Odd numbers count: {}\nList odd numbers is {}'.format(len(odds), odds))
print('Even numbers count: {}\nList even numbers is {}'.format(len(evens), evens))

推荐阅读