У вас есть ряд проблем в вашем коде.Вы на самом деле не вызываете функцию evenOdd
, если вы ее вызывали, вы не предоставили способ получить ее результаты, и у вас есть некоторые несоответствия имен переменных.Кроме того, ваша evenOdd()
функция работала неправильно, потому что предложение else
должно иметь отступ, чтобы быть внутри цикла for
.Как и в вашей версии, odd
всегда будет 1:
Вот код, который устраняет все эти проблемы:
import random
nums =[]
for i in range (1,11):
x = random.randint(1,50)
nums.append(x)
print(nums)
nums.sort()
print(nums)
start = nums[0:5]
print(start)
finish = nums[7:10]
print(finish)
def evenOdd(num):
odd = 0
even = 0
for x in num:
if (x % 2 == 0):
even += 1
else:
odd += 1
return even, odd
even, odd = evenOdd(nums)
print('List had', even, 'evens and', odd, 'odds')
print('The 3rd element in sorted nums is', nums[2])
Главное здесь заключается в том, что evenOdd
Функция возвращает «кортеж», который содержит результирующие числа нечетных и четных чисел, так что вы можете использовать их вне функции.
Пример результата:
[2, 36, 20, 32, 6, 40, 39, 27, 24, 47]
[2, 6, 20, 24, 27, 32, 36, 39, 40, 47]
[2, 6, 20, 24, 27]
[39, 40, 47]
('List had', 7, 'evens and', 3, 'odds')
('The 3rd element in sorted nums is', 20)