Я вижу несколько проблем с вашим кодом.
Проблема 1: tally_status_count принимает аргумент, который никогда не используется. В этом нет ничего плохого, но это странно, и это означает, что вы, вероятно, не знаете, как делать то, что пытаетесь сделать.
Проблема 2: tally_status_count использует переменную, которая не существует, 'status.' Я предполагаю, что вы, вероятно, намеревались передать статус в качестве аргумента функции. В этом случае определение функции должно выглядеть так:
def tally_status_count(status):
Когда вы решаете проблему 2, вы сталкиваетесь с проблемой 3, которая ...
Проблема 3: неправильный цикл. Это:
for status in range (status):
Это чепуха и не сработает. range () - это функция, которая принимает некоторые целые числа и возвращает список целых чисел. Если 'status' - строка, вы не можете использовать ее с range ().
Проблема 4: Вы получаете статус только для последнего случайного числа, а не для всех. Каждый раз, когда вы запускаете эту строку:
status = odd_even(number)
старое значение для статуса выбрасывается.
Это, вероятно, код, который вы имели в виду , чтобы написать:
import random
even_total = 0
odd_total = 0
def main():
print 'Number\tStatus'
print'______________'
statuses = [] #the status for each random number is added to this list
for count in range (10):
number = random.randint(1, 10)
current_status = odd_even(number)
print number, '\t', current_status
statuses += [current_status] #add to the list
tally_status_count(statuses) #go through the list and total everything up
#Function to determine odd or even status
def odd_even(number):
if (number % 2) == 0:
status = 'Even'
else:
status = 'Odd'
return status
#Function to tally odd and even counts
def tally_status_count(statuses):
even_total = 0
odd_total = 0
for status in statuses:
if status == 'Even':
even_total = even_total + 1
else:
odd_total = odd_total + 1
print
print 'The total count of even numbers is: ', even_total
print 'The total count of odd numbers is: ', odd_total
main()