Ветвление в 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 шт):
Код рабочий, но вообще можно проще и универсальнее тоже самое написать:
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 мне кажется более понятным по сути - мы проверяем, что целое число попадает в некий диапазон.
Ваш код совершенно нормально работает, всё правильно. Я проверил
К = 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