#python #list
Вопрос:
numbers = int(input("enter 3 numbers:"))
a, b, c = numbers.split()
average = (a b c)/3
print(average)
если есть какой-либо лучший способ сделать это, пожалуйста, предложите
Комментарии:
1. Предоставленный вами блок кода и код на скриншоте не совпадают.
2. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Ошибка заключается в том, что вы преобразуете numbers
в int
, а затем делаете .split()
:
- Вы не можете преобразовать строку, например
1 2 3
, в int - Даже если у вас есть целое число, у него нет
.split()
метода
Правильные шаги сначала разделяют строку, а затем преобразуют ее в целые числа:
a, b, c = map(int, input("enter 3 numbers: ").split())
average = (a b c) / 3
print(average)
Отпечатки (например):
enter 3 numbers: 1 2 3
2.0
ИЗМЕНИТЬ: Для произвольных чисел (не только 3):
lst = list(map(int, input("enter numbers: ").split()))
average = sum(lst) / len(lst)
print(average)
Ответ №2:
введите номер , string
затем split
их и карту int
для каждого из них, затем преобразуйте их в list
и используйте numpy.mean
для получения average
. Попробуй это:
import numpy as np
np.mean(list(map(int, input().split())))
Комментарии:
1. Некоторые объяснения были бы полезны. Кроме того, импорт
numpy
для этого кажется немного излишним.2. о,это код одной строки спасибо, но знаете ли вы, какую ошибку я допустил выше?
3. @AmalSebastian какая ошибка для какого кода? где находится ваш код, который выдает ошибку?
Ответ №3:
Использование карты будет лучше:
a, b, c = map(int, input("enter 3 numbers: ").split())
average = (a b c)/3
print(average)
Ответ №4:
Вы можете уменьшить количество строк кодов
num1, num2, num3 = int(input("Enter three numbers comma separated:" ) ).split(', ')
print((num1 num2 num3)/3)
Ответ №5:
Или использовать statistics.mean
:
from statistics import mean
print(mean(map(int, input("enter 3 numbers: ").split())))