不清楚这样的问题该怎么起标题……
from math import floordef format_num(num): m = floor(num) cm_f = (num-m) * 100 cm = floor(cm_f) mm = round((cm_f - cm) * 10, 2) rs = "" if m > 0: rs = f"{m} m " if cm > 0: rs = f"{rs}{cm} cm " if mm > 0: rs = f"{rs}{mm} mm" return rs# 1 m 23 cm 4.56 mmprint(format_num(1.23456))
这是一个简单的格式化长度的方法,以米为基础单位,这是我自己写的,请问有更简洁的写法吗?谢谢
总体来说没太多问题,有两个优化建议,你可以参考,比如说第一个,直接在计算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 mmprint(format_num(1.23456))
本文向大家介绍你是怎么优化你的 ts 代码的?相关面试题,主要包含被问及你是怎么优化你的 ts 代码的?时的应答技巧和注意事项,需要的朋友参考一下 你是怎么优化你的 ts 代码的? 作者:rottenpen
这个结果是怎么来的?
请问,想要忽略大小写,请问应该如何优化呢?
我看过一些关于这个问题的帖子,我想我的逻辑和他们的答案差不多。但我找不到我到底错在哪里。 我的代码首先检查提供的的长度,如果长度小于或等于2,则自动返回. 接下来,它删除()第一个元素,并检查其余元素是否按升序排列。 如果不符合顺序,它将用序列替换它,并重复第二步,但这次将删除下一个元素()。 这将继续进行,直到不再有要移除的元素,最终返回 如果在任何迭代中发现列表是升序的,则函数返回. 这是代码
java开发三年,不会JVM调优,想学一下,有点迷茫不知道方向
现在做的是动态编辑菜单 我想给这个菜单添加svg代码用作图标,但是我发现动态添加的svg代码是不会被识别的。 (Icon是自己封装的) 静态的svg代码就可以被识别 动态的就原样的打印出来了