如何为if-else条件添加循环?未选K/L时如何循环输入单位?
解决条件循环与输入校验问题
方案1:支持重复转换的完整实现
这个方案既实现了单位输入的循环校验,也让整个体重转换流程可以重复执行:
while True: weight = int(input("Weight: ")) # 循环获取有效单位输入,直到用户输入K或L while True: unit = input("(K)g or (L)bs: ").upper() if unit in ("K", "L"): break print("Invalid input! Please enter K or L.") # 执行体重转换逻辑 if unit == "K": print(f"Weight in Kg: {weight}") elif unit == "L": print(f"Weight in Lbs: {weight * 2.20462262185}") # 让用户选择是否继续转换 continue_choice = input("Do you want to convert another weight? (Y/N): ").upper() if continue_choice != "Y": break
方案2:仅校验单位输入(单次转换)
如果只需要在用户输入无效单位时循环提示,不需要重复转换,用这个版本:
weight = int(input("Weight: ")) # 循环校验单位输入 while True: unit = input("(K)g or (L)bs: ").upper() if unit in ("K", "L"): break print("Invalid input! Please enter K or L.") # 执行转换输出 if unit == "K": print(f"Weight in Kg: {weight}") elif unit == "L": print(f"Weight in Lbs: {weight * 2.20462262185}")
关键说明
- 内层
while True循环专门处理单位输入的有效性校验:每次将输入转为大写后判断是否属于("K", "L"),无效则提示错误并重新获取输入,解决「未选K/L时循环输入」的需求。 - 外层
while True循环实现整个转换流程的重复执行,满足「为if-else条件添加循环逻辑」的需求,用户可以多次进行体重转换操作。 - 使用f-string替代字符串拼接,让输出代码更简洁易读。
内容的提问来源于stack exchange,提问作者Shredz
相关产品推荐
相关产品推荐

