Если ввод чисел в одной строке через пробел: 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)
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
n = int(input())
numbers = [float(x) for x in input().split()]
positive = [num for num in numbers if num > 0]
print(sum(positive) / len(positive) if positive else 0)
```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
```