Python 3中出现意外的缩进错误

2024-10-03 04:34:38 发布

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

我正在尝试创建一个程序,将计算一个人的体重指数作为我的家庭作业。我在第9行得到“意外缩进”错误,这是***打印(“你的BMI是:”,BMI)。 我已经前后移动了缩进来纠正它,但仍然不起作用。请帮忙,因为我只是个初学者。提前谢谢你。在

user_input = float(input("Let's calculate your BMI! Please select if you 'K' for kilograms and L for pounds for your weight: ")).upper


if user_input == "K":
    user_input_weight_kgs = float(input("Weight in kgs.:"))
    user_input_height = float(input("Height by inches: "))
    user_input_age = (input("Age:"))
    BMI_for_kgs  = float(user_input_weight / (user_input_height **2))
        print ("Your BMI is: ",BMI)
    if BMI < 18.5 :
        print ("Under Weight")
    elif BMI < 26:
        print ("Normal Weight")
    else:
        print ("Over Weight")

elif user_input == "L":
    user_input_weight_lbs = float(input("Weight in lbs.: "))  
    user_input_height = float(input("Height by inches: "))
    user_input_age = (input("Age:"))
    BMI_for_lbs  = float((user_input_weight * 703) / (user_input_height **2))
        print ("Your BMI is: ",BMI)
    if BMI < 18.5 :
        print ("Under Weight")
    elif BMI < 26:
        print ("Normal Weight")
    else:
        print ("Over Weight")       

elif guess.isnumeric():
    print ("Please select an alphabet only! Letter 'K' or 'L'")
elif len(guess) > 1:
    print ("Please choose a single alphabet only! Letter 'K' or 'L'")
elif len(guess) == 0:
    print ("You need to enter a letter! Letter 'K' or 'L'")
else:
    break

Tags: forinputiffloatelseprintbmiplease
1条回答
网友
1楼 · 发布于 2024-10-03 04:34:38

问题是第9行(打印行)没有正确缩进,解决方法如下:

if user_input == "K":
    user_input_weight_kgs = float(input("Weight in kgs.:"))
    user_input_height = float(input("Height by inches: "))
    user_input_age = (input("Age:"))
    BMI_for_kgs  = float(user_input_weight / (user_input_height **2))
    print ("Your BMI is: ",BMI)
    if BMI < 18.5 :
        print ("Under Weight")
    elif BMI < 26:
        print ("Normal Weight")
    else:
        print ("Over Weight")

elif user_input == "L":
    user_input_weight_lbs = float(input("Weight in lbs.: "))  
    user_input_height = float(input("Height by inches: "))
    user_input_age = (input("Age:"))
    BMI_for_lbs  = float((user_input_weight * 703) / (user_input_height **2))
    print ("Your BMI is: ",BMI)
    if BMI < 18.5 :
        print ("Under Weight")
    elif BMI < 26:
        print ("Normal Weight")
    else:
        print ("Over Weight")       

elif guess.isnumeric():
    print ("Please select an alphabet only! Letter 'K' or 'L'")
elif len(guess) > 1:
    print ("Please choose a single alphabet only! Letter 'K' or 'L'")
elif len(guess) == 0:
    print ("You need to enter a letter! Letter 'K' or 'L'")
else:
    break

只应在代码块内缩进代码。缩进开始一个块,取消缩进结束它。在Python中,没有显式的大括号、方括号或关键字来结束代码块。在

编辑

回答附加问题(在评论中):

你的问题是你期望一个字符串要么是“K”要么是“L”,但你试图把这个字符串转换成一个浮点。这应该表明出了什么问题。另外,您实际上并没有调用upper(),这是另一个问题(除非您的意图是调用user_input()来获取字符串的大写值,我认为这在这里是不必要的)。解决方法:

^{pr2}$

相关问题 更多 >