总体来说没太多问题,有两个优化建议,你可以参考,比如说第一个,直接在计算cm和mm时进行数学运算,而不是将cm_f作为中间变量,这样的话可以节省一些步骤,第二个建议其实和第一个建议差不多,就是将结果以列表形式存储在parts列表中,提高可读性,总体来说你的代码没什么太大问题。 我这段代码是在你的基础上,稍微按照刚刚我的这两个建议,修改了很小一点 def format_num(num): m = int(num) cm = int((num - m) * 100) mm = round((num - m - cm / 100) * 1000, 2) parts = [] if m > 0: parts.append(f"{m} m") if cm > 0: parts.append(f"{cm} cm") if mm > 0: parts.append(f"{mm} mm") return " ".join(parts) # 1 m 23 cm 4.56 mm print(format_num(1.23456))