Это хорошая возможность узнать об отладке! Вы знаете, что это выражение 41.0:
int(Number_One + Number_Two + Number_Three) / 3
И вы знаете, что вы хотите получить 2.0 - так как вы получили 41?
Давайте разбить его вниз:
>>> int(Number_One + Number_Two + Number_Three)
123
О, это странно - почему сложение 1, 2 и 3 дает нам 123? Эти значения на самом деле 1, 2 и 3?
>>> Number_One, Number_Two, Number_Three
('1', '2', '3')
Ах - это не ЦИФРЫ 1, 2 и 3, это СТРОКИ! (Вы можете определить это по 'quotation marks'
.) Когда вы добавляете строки, они объединяются вместе, например:
>>> 2 + 2
4
>>> '2' + '2'
'22'
>>> 'foo' + 'bar'
'foobar'
Таким образом, способ исправить это - преобразовать числа в int
s до мы добавляем их:
number_one, number_two, number_three = input("Enter three numbers: ").split()
average_number = (int(number_one) + int(number_two) + int(number_three)) / 3
print(f"The average of all the numbers is {average_number}")
Более простой способ написать это - сделать их списком вместо трех переменных. Таким образом, вам не нужно иметь дело с таким количеством имен переменных и круглых скобок, и он также обрабатывает любое количество чисел вместо ровно трех!
numbers = [int(n) for n in input("Enter some numbers: ").split()]
average_number = sum(numbers) / len(numbers)
print(f"The average of all the numbers is {average_number}")
Или вы можете использовать statistics.mean
, чтобы сделать это в одна строка:
>>> from statistics import mean
>>> print(
... "The average of all the numbers is",
... mean(int(n) for n in input("Enter some numbers: ").split())
... )
Enter some numbers: 1 2 3
The average of all the numbers is 2