Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с питоном, пожалуйста

Максим Назаров Знаток (319), на голосовании 4 месяца назад
 total, sr = 0, 0
while True:
vor = input()
vor = float(vor)
if vor != "стоп":
total += vor
sr += 1
else:
break
print(total / sr)
как сделать что бы input() принимал и int и str?
Голосование за лучший ответ
FreedomS Просветленный (41975) 5 месяцев назад
пусть принимает строку, а потом в коде через try: пытаться преобразовать строку в число и работать как с числом или except: обрабатывать как текст
и у тебя в коде идет попытка преобразования во флоат а не в инт
Black Мыслитель (5659) 5 месяцев назад
Чтобы ваш код мог обрабатывать как числа, так и строки (например, команду "стоп"), вы можете использовать конструкцию `try-except`, чтобы попытаться преобразовать ввод в число. Если преобразование не удается (например, когда вводится "стоп"), программа должна завершить выполнение цикла. Вот как это можно сделать:

```python
total, count = 0, 0

while True:
user_input = input("Введите число или 'стоп' для завершения: ")

try:
number = float(user_input) # Пробуем преобразовать ввод в число
total += number
count += 1
except ValueError:
if user_input.lower() == "стоп": # Проверяем, если ввод 'стоп'
break
else:
print("Пожалуйста, введите число или 'стоп' для завершения.")

if count > 0:
print(f"Среднее значение: {total / count}")
else:
print("Не было введено ни одного числа.")
```

Объяснение:
1. Ввод пользователя считывается и сохраняется в переменной `user_input`.
2. С помощью `try-except` конструкция пытается преобразовать ввод в число типа `float`.
3. Если преобразование успешно, число добавляется к сумме, и счетчик увеличивается.
4. Если преобразование не удается (возникает `ValueError`), программа проверяет, является ли ввод командой "стоп". Если да, программа выходит из цикла. В противном случае выводится сообщение о необходимости ввести число или "стоп".
5. После завершения цикла программа вычисляет и выводит среднее значение, если были введены числа. В противном случае выводится сообщение о том, что числа не были введены.
Doctor Strange Мыслитель (7902) 5 месяцев назад
 total, sr = 0, 0 
while True:
vor = input()
if vor != "стоп":
total += float(vor)
sr += 1
else:
break
print(total / sr)
ПапаВысший разум (143903) 5 месяцев назад
С возвращением. Ты думал, что смог освободиться от "ответов", но тебя всё равно затянуло?
Doctor Strange Мыслитель (7902) Папа, да
Похожие вопросы