You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何指定从特定try块继续执行?Python输入验证问题

BMI计算程序输入逻辑优化

问题场景

原代码在体重输入格式错误时,会重新回到身高输入环节,但身高已输入正确,需要调整为仅重新要求输入体重,同时将所有提示文本改为中文。

原代码

while True:
    try:
        height_input=input(f"Please enter your height in meters : ")
        height=float(height_input)
        # weight_input=input(f"Please enter your weight in kilograms")
       
    except ValueError:
        print("Invalid Input. Please Try Again")
        continue
    try:
        weight_input=input(f"Please enter your weight in kilograms")
        weight=float(weight_input)
    except ValueError:
        print("Invalid Input. Please Try Again")
        continue
                                            
    try:
        bmi=weight/(height*height)
        print(round(bmi,2))
    finally:
        break

修改后的代码

# 先获取正确的身高输入
while True:
    try:
        height_input = input("请输入您的身高(单位:米):")
        height = float(height_input)
        break  # 身高输入正确,退出循环
    except ValueError:
        print("输入无效,请重新输入")

# 获取正确的体重输入,仅在错误时重新输入体重
while True:
    try:
        weight_input = input("请输入您的体重(单位:千克):")
        weight = float(weight_input)
        break  # 体重输入正确,退出循环
    except ValueError:
        print("输入无效,请重新输入")

# 计算并输出BMI
bmi = weight / (height * height)
print(f"您的BMI指数为:{round(bmi, 2)}")

关键修改点

  1. 拆分输入循环:将身高和体重的输入逻辑拆分为两个独立的while循环,确保身高输入正确后不再重复触发该环节,体重输入错误时仅在自身循环内重试。
  2. 中文提示文本:将所有输入提示和错误提示替换为中文表述,适配国内用户使用习惯。
  3. 简化逻辑结构:移除不必要的嵌套try块,让代码逻辑更清晰,便于后续维护。

内容的提问来源于stack exchange,提问作者Vernita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:35:29