1Aspect1
@1Aspect1

Где у меня ошибка в коде в задании 15.2 Информатика Python?

Я не знаю где у меня ошибка, которая мешает полноте выполнения кода, пока что только на 1 балл решил
k = int(input())
maximum = 0
number = 0
a = 0
for i in range(k):
    number = round(int(input()))
    if 1 < k < 30 and 1 < number < 300:
        if number > maximum:
            maximum = number
            a = 1
    elif 1 < k < 30 and number < 300 and number > 30:
        if number > maximum:
            maximum = number
            a = 2
print(maximum)
if a == 2:
    print("NO")
elif a == 1:
    print("YES")

62a8a379d675a952009619.png
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Потому что пишешь какую-то ерунду.
round(int(input())) - зачем тебе round()? Ты же читаешь целое число.
1 < k < 30 зачем это проверять на каждой итерации цикла? И да, это условие провалится если тебе передадут 1 или 30 значений.
1 < number < 300 - опять, зачем? Тебе по условию сказано, что вводимые значения будут именно такими, это условие ничего не делает. Кроме случаев, когда скорость равна 1 или 300 - по условию такое может быть, а у тебя нет.
Дальше, почему ты постоянно переписываешь переменную a? Её нужно переписывать только если есть автомобиль, скорость которого меньше 30 км/ч. В твоём коде, если сначала будет автомобиль со скоростью меньше, а потом со скоростью больше, то программа забудет, что видела медленный автомобиль.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alekseevichzy
Начинающий Python программист
В таких задачах в ответе есть памятка какие входные данные должны использоваться для проверки программы, и как правило там целые числа которые и так подходят под условия задачи, так что round() и проверки по типу
if 1 < k < 30здесь не нужны.
Во первых у тебя в условиях
if number > maximum:
    maximum = number
    a = 1/2
лишний таб, a = 1/2 должны относится к условиям выше.
Во вторых тебе нужно изменить последние условия так:
if a == 1:
    print("NO")
elif a == 2:
    print("YES")

Хотя я считаю что последние условия и переменная а тут в принципе лишние и можно было бы сделать по другому.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы