Python编写重量转换器时if分支被跳过该如何修复?
问题原因
你写的kg_lbs.upper == "K"条件永远不成立:upper是字符串自带的转换大写方法,不加括号时指代的是方法本身的对象,而非调用方法后得到的大写字符串,二者和"K"比较的结果永远为假,因此程序只会执行else分支。
修复代码
只需要给upper加上调用括号即可,修改后完整代码如下:
weight = int(input("Weight: ")) kg_lbs = input("(K)g or (L)bs?") converted_one = weight / 0.454 converted = weight * 0.45 if kg_lbs.upper() == "K": print("Weight in lbs: " + str(converted_one)) else: print("Weight in kgs: " + str(converted))
补充提示
你代码里的转换系数用的是近似值,如果需要更高精度可以调整:
- 公斤转磅:1公斤≈2.20462磅,等价于除以0.453592
- 磅转公斤:1磅≈0.453592公斤
内容的提问来源于stack exchange,提问作者quinn
相关产品推荐
相关产品推荐

