#python #integer
Вопрос:
Что они хотят, чтобы мы сделали, так это создали код, в котором я смогу дать им возможность получать только до 20 баллов. Они также хотят, чтобы я добавил сообщение об ошибке, если они ошибутся и перейдут либо выше, либо ниже заданных цифр. Это то, что у меня есть до сих пор.
n=int(input("Enter an integer between 3-20: "))
a=[]
for i in range(0,n):
grade=int(input("Enter Grade: "))
a.append(grade)
avg=sum(a)/n
print("Average Score",round(avg,2))
if(avg >= 90):
print("Final Grade A")
elif(avg >= 80 and avg < 90):
print("Final Grade B")
elif(avg >= 70 and avg < 80):
print("Final Grade C")
elif(avg >= 60 and avg < 70):
print("Final Grade D")
else:
print("Sorry, Failed Grade")
Ответ №1:
Если ваша версия python 3.8 , вы можете заменить первую строку на
while not 3 <= (n := int(input('Enter an integer between 3-20: '))) <= 20:
print('Input must be between 3-20, inclusive.')
«Выражение назначения» :=
устанавливается n
в качестве входных данных. Затем (3 <= ... <= 20)
проверяет, находится ли n
между 3 и 20. Ввод запрашивается снова и снова, пока эта проверка не вернется True
.
Ответ №2:
Это должно сработать, и это довольно просто понять.
while True:
n = int(input("Enter an integer between 3-20: "))
if not (3 <= n <= 20):
print("Number not in range 3-20, try again!")
continue
a = []
for i in range(0, n):
grade = int(input("Enter Grade: "))
a.append(grade)
avg = sum(a)/n
print("Average Score", round(avg, 2))
if(avg >= 90):
print("Final Grade A")
elif(avg >= 80 and avg < 90):
print("Final Grade B")
elif(avg >= 70 and avg < 80):
print("Final Grade C")
elif(avg >= 60 and avg < 70):
print("Final Grade D")
else:
print("Sorry, Failed Grade")
break