Ветвление в python

введите сюда описание изображенияУсловие задачи:
Напишите программу. Дано целое число К в диапазоне 0–100. Вывести описание оценки: 0-59 - «Провал», 60-74 – «С», 75-89 - «В», 90-100 - «А» .

Ввожу число баллов он просто выводит те числа, которые вписал, а должен выдавать оценку А или B.

a = int(input("Введите количество баллов:"))

norm_a= [90, 100]
norm_b= [75, 89]
norm_c= [60, 74]
norm_p= [0, 59]

if a >= norm_a[0] and a<= norm_a[1]:
    print ("A")
elif a >= norm_b[0] and a<= norm_b[1]:
    print("B")
elif a >= norm_c[0] and a<= norm_c[1]:
    print("C")
elif a >= norm_p[0] and a<= norm_p[1]:
    print("Fail")

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

Автор решения: CrazyElf

Код рабочий, но вообще можно проще и универсальнее тоже самое написать:

a = int(input("Введите количество баллов:"))

norm = {
    'A': [90, 100],
    'B': [75, 89],
    'C': [60, 74],
    'Fail': [0, 59]
}

for k,v in norm.items():
    a1, a2 = v
    if a in range(a1, a2+1):
        print(k)
        break

Всегда старайтесь использовать принцип DRY - если код повторяется, то наверняка его можно сократить до перебора какой-то коллекции.

Хотя с range я, конечно, извратился, тоже самое можно написать как:

    if a1 <= a <= a2:

Но вариант с range мне кажется более понятным по сути - мы проверяем, что целое число попадает в некий диапазон.

→ Ссылка
Автор решения: alex

Ваш код совершенно нормально работает, всё правильно. Я проверил

К = int( input( 'Введите количество баллов:' ) )
norm_a = [ 90, 100 ]
norm_b = [ 75,  89 ]
norm_c = [ 60,  74 ]
norm_p = [  0,  59 ]

if   norm_a[0] <= К <= norm_a[1] :
  print( 'A' )
elif norm_b[0] <= К <= norm_b[1] :
  print( 'B' )
elif norm_c[0] <= К <= norm_c[1] :
  print( 'C' )
elif norm_p[0] <= К <= norm_p[1] :
  print( 'Провал' )

# Напишите программу
# Дано целое число К в диапазоне 0–100
# Вывести описание оценки:
# «А»     90 - 100
# «В»     75 -  89
# «С»     60 -  74
# «Провал» 0 -  59
→ Ссылка