ЗАДАЧА: Напишите программу, которая считывает с клавиатуры два числа a и b, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b], которые кратны числу 3.
Мой код:
firstNumber = int(input('Введите первое число: '))
secondNumber = int(input('Введите второе число: '))
summ = 0
temp = 0
if firstNumber % 3 != 0:
_firstNumber = firstNumber + 3 - (firstNumber % 3)
for i in range (firstNumber, secondNumber + 1, 3):
_summ += i
_temp += 1
print(summ/temp)
Вопрос: если задать отрезок от 1 до 2, выдаёт ошибку.
Как исправить код, чтобы при вводе 1 и 2, не было ошибки?
a = int(input( ))
b = int(input( ))
count = 0
summa =0
for i in range(a, b+1):
if i % 3 == 0:
count += 1
summa += i
if count != 0: (на ноль делить нельзя)
answer = summa / count
print(answer)
else: print("ошибка")
отметить лучшим ответом
Чтобы исправить эту проблему, вы можете добавить условную проверку перед делением на `temp`. Если `temp` равно 0, вы можете вывести на консоль соответствующее сообщение о том, что в указанном отрезке нет чисел, кратных 3.
Вот исправленный код:
```python
firstNumber = int(input('Введите первое число: '))
secondNumber = int(input('Введите второе число: '))
summ = 0
temp = 0
if firstNumber % 3 != 0:
firstNumber = firstNumber + 3 - (firstNumber % 3)
for i in range(firstNumber, secondNumber + 1, 3):
summ += i
temp += 1
if temp == 0:
print("В указанном отрезке нет чисел, кратных 3")
else:
print(summ/temp)
```
Теперь, если отрезок [a; b] не содержит чисел, кратных 3, программа выведет соответствующее сообщение, а не вызовет ошибку.