При выводе кода появляется ошибка ValueError: invalid literal for int() with base 10:

Прошу помочь. На экран должно выводится либо Zabud pro stypendiiu,либо Zvychaina, либо Pidvyshchena, но ничего из перечисленного не происходит. Задача: код должен определять, какого уровня должна быть стипендия, смотря на оценки ("Zvychaina" - обычная стипендия,"Pidvyshchena" - Повышенная)

a=[]
a=int(input())
if int(n) >=1 and int(n)<=7:
    for i in a:
        if int(i) < 51:
            print("Zabud pro stypendiiu")
            break
        elif int(i) <90 and int(i) >50 :
             print("Zvychaina")
             break
        elif int(i) >=90:
            print("Pidvyshchena")
            break```



Ответы (2 шт):

Автор решения: Zhihar
for i in a:

так это не работает, надо писать

for i in range(a):

вообще странный код с кучей лишних действий, можно было бы его и в такой превратить тогда:

a = int(input())
if int(n) >= 1 and int(n) <= 7:
    if a < 51:
        print("Zabud pro stypendiiu")
    elif a < 90 and a > 50:
        print("Zvychaina")
    elif a >=90:
        print("Pidvyshchena")

Если же вы вводите несколько значений (на что указывает a=[] и последующий цикл, то вы неправильно получаете список), можно было бы сделать так:

a = list(map(int, input().split()))

if int(n) >= 1 and int(n) <= 7:
    for i in a:
        if i < 51:
            print("Zabud pro stypendiiu")
        elif i < 90 and i > 50:
            print("Zvychaina")
        elif i >= 90:
            print("Pidvyshchena")

Кстати такие конструкции:

i < 90 and i > 50:

питон позволяет писать более компактно:

50 < i < 90

P.S.

и непонятно в вашем коде, что такое n:

int(n) >= 1 and int(n) <= 7:
→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Так надо писать не так:

for i in a:

а так:

for i in range(a):
→ Ссылка