У меня небольшая проблема, которую я не могу понять. Я застреваю в цикле. У меня есть 3 цикла while, первый выполняется как запланировано, а затем переходит во второй. Но потом он просто застревает во втором, и я не могу понять, почему.
Небольшое объяснение того, что я пытаюсь сделать:
Я полагаю, чтобы получить 3 входа: годы опыта(yearsexp), производительность (производительность) и случайный int генерируется между 1-10 (уровень). Программа спросит пользователя об их опыте, если между 3-11 они квалифицированы. Если нет, он скажет им, что они не являются квалифицированными и попросит повторно ввести значение. То же самое с производительностью. Если они вводят число, меньшее или равное 11, оно будет генерировать случайное значение int (уровень), на котором уровень точки будет использоваться для оценки их бонуса. Пользователь получает запрос об опыте, будет правильно работать и переходить к производительности. Тем не менее, даже при вводе правильного ввода, он продолжает просить их повторно ввести производительность #. Я не могу понять, почему он так застрял.
import random
error = True
expError = True
performanceError = True
# Get users name
name = input("Enter your name: ")
# Get users experience *MINIMUM of 3 yrs py
while (expError):
try:
yearsexp = int (input(name+", Enter the years of your experience: "))
if (yearsexp >= 3 and yearsexp <= 11):
expError = False
print(name, "You are qualified")
else:
raise ValueError
except:
print ("You have entered an invalid number! Try again...")
#Get users performance
while (performanceError):
try:
performance = int (input(name+", Enter the performance: "))
if (performance <= 11):
expError = False
print(name, "You are qualified")
else:
raise ValueError
except:
print ("You have entered an invalid number! Try again...")
performanceError = False
# Get random level number
level = random.randint(1,11)
print ("Random Level: ", end =' ')
print (level)
bonus = 5000.00
while (error):
try:
if (level >=5 and level <=8):
error = False
print ("Expected Bonus: $5,000.00")
print (name + ", your bonus is $", end =' ')
print (bonus)
elif (level <= 4 ):
error = False
bonus = bonus * yearsexp * performance * level
print ("Expected bonus: ", end =' ')
print (bonus)
print (name + ", your bonus is $", end =' ')
print (bonus)
else:
raise ValueError
except:
print ("You do not get a bonus")