Python终止程序中的循环

2024-04-19 06:24:31 发布

您现在位置:Python中文网/ 问答频道 /正文

一般来说,我对编码和Python都是新手,我不明白这一点。 我添加了循环,这样程序就不会在每次出现输入错误时终止,但是我可能会把第二个循环搞乱。 我想可能和空格有关,但我想不出来。 程序在接受“卡路里燃烧”变量后终止。你知道吗

def start():

print("""This is a Weight Calculator, please follow the instructions.""")
name = input("What is your name? ")
age = int(input("How old are you? "))

if 19 <= age <= 78:

    height = float(input("How tall are you in cm? "))
    current_weight = float(input("How much do you currently weigh? "))
    goal_weight = float(input("How much do you want to weigh? "))
    calories_consumed = int(input("How many calories did you consume today? "))
    calories_burned = int(input("How many calories did you burn today? "))

    def activity():

        global rmr
        activity_factor = input("Choose an activity factor: Sedentary, Lightly active, Moderately Active, Very Active ")

        zif activity_factor == "sedentary":
            rmr = int(round(((10 * current_weight) + (6.25 * height) - (5 * age) + 5) * 1.2))

        if activity_factor == "lightly active":
            rmr = int(round((10 * current_weight + 6.25 * height - 5 * age + 5) * 1.375))

        if activity_factor == "moderately active":
            rmr = int(round(((10 * current_weight) + (6.25 * height) - (5 * age) + 5) * 1.550))

        if activity_factor == "very active":
            rmr = int(round(((10 * current_weight) + (6.25 * height) - (5 * age) + 5) * 1.725))

        else:
            activity()

        daily_deficit = int((rmr + calories_burned - calories_consumed))
        print("Your daily deficit is: " + str(daily_deficit))

        import numpy
        mean_deficit = [daily_deficit]
        calculation_mean_deficit = int(round(7500 / numpy.mean(mean_deficit)))
        reach_goal = int(round((current_weight - goal_weight) * calculation_mean_deficit))

        print(mean_deficit)
        print(name + " it will take you " + str(calculation_mean_deficit) + " days to loose 1 kg.")
        print(name + " it will take you " + str(reach_goal) + " days to reach your goal.")

        choice = input("do you wish to continue Y/N?")

        if choice == "n":
            return
        else:
            start()
else:
    print("Invalid age")
    start()


start()

Tags: youinputagecurrentactivitymeanhowint
1条回答
网友
1楼 · 发布于 2024-04-19 06:24:31

代码中的任何地方都不会调用activity()函数,因此一旦程序收集到输入,它就不会执行任何其他操作并退出。你知道吗

也是“输”而不是“松”

相关问题 更多 >