У меня возникли проблемы с программой, которую я пытаюсь написать. Код, показанный ниже, должен запросить пользователя для ввода и затем распечатать результат непрерывно до тех пор, пока не будет введено недопустимое значение. В моей конструкции кода я могу либо сделать цикл ответа бесконечно, либо как показано ниже, дважды спросить и выйти. Как я могу зациклить эту функцию, чтобы делать то, что хочу? Большое большое спасибо!Зацикливание функции внутри модуля
#define the function getLetterGrade and enter conditions of the function
def getLetterGrade (numGrade):
if numGrade >= 95 and numGrade <= 100:
print (" A+")
elif numGrade >= 90 and numGrade <95:
print (" A")
elif numGrade >= 85 and numGrade <90:
print (" A-")
elif numGrade >= 80 and numGrade <85:
print (" B+")
elif numGrade >= 75 and numGrade <80:
print (" B")
elif numGrade >= 70 and numGrade <75:
print (" B-")
elif numGrade >= 65 and numGrade <70:
print (" C+")
elif numGrade >= 60 and numGrade <65:
print (" C")
elif numGrade >= 55 and numGrade <60:
print (" C-")
elif numGrade >= 50 and numGrade <55:
print (" P")
elif numGrade < 50 and numGrade >=0:
print (" F")
elif numGrade < 0 or numGrade > 100:
print (" invalid, please enter a score between 0 and 100.")
def main():
#Ask the user for input
numGrade = eval(input("Enter your mark in percent"))
while numGrade >= 0 or numGrade <= 100:
print("The grade for", numGrade, "is", end = '')
getLetterGrade(numGrade) # Call the function getLetterGrade as defined above
break
numGrade = eval(input("Enter your mark in percent"))
while numGrade >= 0 or numGrade <= 100:
print("The grade for", numGrade, "is", end = '')
getLetterGrade(numGrade) # Call the function getLetterGrade as defined above
break
if __name__ == '__main__':
main()
Почему вы называете 'eval' на входе пользователя? –
'eval (input (« Введите свой знак в процентах »))' <--- это плохая идея и опасно –
Я новичок в программировании, причина, по которой я использовал функцию eval, заключается в том, что переменная становится и целой а не строку. Какая альтернатива? Спасибо, парни! @JoranBeasley – user2883489