#python
#python
Вопрос:
я понимаю, как это сделать с целыми числами, но я не понимаю, как принимать значения с плавающей запятой от пользователя и находить среднее, минимальное, максимальное и диапазон. я продолжаю получать сообщение об ошибке, в котором говорится: TypeError: объект ‘float’ не может быть повторен.
Пока это мой минимальный код, и я знаю, что он не работает, но просто ищу совет о том, как брать числа пользователей с плавающей запятой и находить среднее, минимальное, максимальное и диапазон. Спасибо!
import statistics
def main ():
userNum= float(input("Give me 5 numbers "))
average = statistics.mean(userNum)
print("The average of the numbers given is: ", average)
print(max(userNum))
print(min(userNum))
main()
Комментарии:
1. Попробуйте
userNum= [float(x) for x in input("Give me 5 numbers ").split()]
Ответ №1:
Вы не можете напрямую преобразовать входные данные в float. Сначала вам нужно разделить пользовательский ввод. Если это похоже:
"3.4, 5.6, 8.7, 6.4, 9.8"
Затем попробуйте так:
import statistics
def main():
userNum = float(input("Give me 5 numbers "))
userNum = [float(x) for x in userNum.split(", ")]
average = statistics.mean(userNum)
print("The average of the numbers given is: ", average)
print(max(userNum))
print(min(userNum))
main()
Ответ №2:
Прежде всего, вам нужно сделать отступ main()
при вызове функции, я имею в виду последнюю строку вашего кода.
Это мое решение без statistics
модуля, потому что я не очень хорошо с ним знаком.
def main():
tries = 0
while True:
tries = 1
print(f'try number {tries}')
user_num = float(input('Enter five floating points: '))
if tries == 1:
sum1 = user_num
elif tries == 2:
sum2 = user_num
elif tries == 3:
sum3 = user_num
elif tries == 4:
sum4 = user_num
elif tries == 5:
sum5 = user_num
sums = sum1 sum2 sum3 sum4 sum5
print(f'sum is {sums}')
average = sums / tries
print(f'The average of the numbers given is: {average}')
all_numbers = [sum1, sum2, sum3, sum4, sum5]
all_numbers.sort()
print(f'sorted: {all_numbers}')
print(f'the minimum number is {all_numbers[-1]}')
print(f'the maximum number is {all_numbers[0]}')
break
main()
Надеюсь, вам это понравится.
Получайте удовольствие 🙂
Ответ №3:
Обновление: это решение, которое я нашел. Возможно, это слишком упрощенно, но для меня это работает.
def main ():
import statistics
userNum= input("Enter 5 floating point values seperated by a space")
x=[float(x) for x in userNum.split(" ")] #converts string to floating point
values
average = statistics.mean(x) #find the average value entered
print("The average of the numbers given is: ", average) #print the average
number entered
print (min(x), "The min number given") #print the min number entered
print (max(x), "The max number given") #print the max number entered
diff= max(x) - min(x) #calculate the range
print (diff, "This is the range of numbers given") #print the range
main()