ИМТ с исключением обработки Python - PullRequest
0 голосов
/ 01 июля 2018

Мне нужна помощь с этим кодом, который я пытаюсь применить, недавно я запустил bmi калькулятор в индексе, и теперь я пытаюсь обновить этот код с обработкой исключений. Пока порции не дают мне ошибок, они просто странно работают вместе. Например, когда он запрашивает «Введите имя пользователя или« 0 »для выхода», он фактически не завершает процесс, который продолжается до процесса исключения. Может кто-нибудь помочь мне написать это более эффективно. вот мой код, он обновлен, проблема, с которой я сейчас сталкиваюсь, заключается в том, что программа не завершает работу, когда пользователь вводит '0':

def bmi_calculator():
end = False

print("Welcome to the BMI Calculator!")

while end == False:

    user = input("Enter student's name or '0' to quit: ")
    if user == "0":
        print("end of report!")
        end = True
    else:
        print("Lets gather your information,", user)
        break

flag='yes'
while flag != 'no':
    #Exception block for catching non integer inputs
    try:
        #Prompting user to input weight
        weight = int(input('Enter your weight in pounds : '))
        if weight == 0:
            raise ValueError
    except ValueError:
        print ('Oops!! Kindly enter non-zero numbers only.')
        flag = input('Do you want to try again? yes/no : ')
        continue

    try:
        #Prompting user to input height
        height = float(input('Enter your height in inches : '))
        if height == 0:
            raise ValueError
    except ValueError:
        print ('Oops!! Kindly enter non-zero numbers only.')
        flag = input('Do you want to try again? yes/no : ')
        continue

    #Formula for calculating BMI
    BMI = round(weight * 703/(height*height), 2)
    return (BMI)
print(" Your bmi is:", bmi_calculator())
...