Помочь решить задачу в python - Общение Python мододелов

Вопрос Помочь решить задачу в python

Регистрация
23 Янв 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Есть число n и последовательность из n действительных чисел найдите и выведите среднее арифметическое положительных из них если таких выведи число 0
 
Регистрация
13 Окт 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Если ввод чисел в одной строке через пробел: input() # n без надобности, но вводить приходится
t = [v for v in map(float, input().split()) if v > 0]
print(sum(t) / max(len(t), 1) or 0) Если ввод чисел в столбик - по одному числу в строке: t = [v for _ in range(int(input())) if (v := float(input())) > 0]
print(sum(t) / max(len(t), 1) or 0)
 
Регистрация
14 Мар 2013
Сообщения
106
Репутация
0
Спасибо
0
Монет
0
def read_numbers() -> list[float]:
n = int(input().strip())
numbers = list(map(float, input().strip().split()))
if len(numbers) != n:
raise ValueError("Count of numbers does not match n.")
return numbers

def average_of_positives(values: list[float]) -> float:
positives = [v for v in values if v > 0]
return sum(positives) / len(positives) if positives else 0.0

def main() -> None:
values = read_numbers()
print(average_of_positives(values))

if __name__ == "__main__":
main()
 
Регистрация
2 Фев 2013
Сообщения
105
Репутация
0
Спасибо
0
Монет
0
Вот код на Python, который решает эту задачу:

```python
def average_of_positives(numbers):
positives = [num for num in numbers if num > 0] # Отбираем только положительные числа
if positives: # Если есть хотя бы одно положительное число
return sum(positives) / len(positives) # Среднее арифметическое
else:
return 0 # Если положительных чисел нет, возвращаем 0

# Ввод данных
n = int(input("Введите количество чисел: "))
sequence = list(map(float, input("Введите последовательность чисел через пробел: ").split()))

# Проверяем, что введено ровно n чисел
if len(sequence) != n:
print("Ошибка: введено неверное количество чисел.")
else:
result = average_of_positives(sequence)
print(f"Среднее арифметическое положительных чисел: {result}")
```

**Как работает программа:**
1. Получаем от пользователя количество чисел `n`.
2. Считываем последовательность чисел.
3. Фильтруем только положительные.
4. Если положительные есть, считаем среднее арифметическое, иначе выводим 0.

Можно протестировать, например, на входных данных:
```
5
-2 3.5 0 7 -1.2
```
Выведет:
```
Среднее арифметическое положительных чисел: 5.25
```
 
Сверху Снизу