python使用数字与字符串方法技巧有哪些
导读:本文共4422字符,通常情况下阅读需要15分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1. 少使用数字字面量下面的代码使用数字来作为判断条件的语句,如果你从别人手里接手过这部分代码,很难第一时间理解它的意义。defmark_trip_as_featured(trip):"""将某个旅程添加到推荐栏目"""iftrip.source==11:do_some_thing(trip)... ...
目录
(为您整理了一些要点),点击可以直达。下面的代码使用数字来作为判断条件的语句,如果你从别人手里接手过这部分代码,很难第一时间理解它的意义。
我们可以使用枚举的方式,对这些数字部分做一些说明。
将重复出现的数字定义成枚举类型,不仅改善了代码的可读性,还降低了代码出现 Bug
的机率。
当然不是所有的数字都需要用到枚举说明,像常见数字下标 0 和 -1
就不需要。
“ 裸字符串处理 ” 这里指只使用基本的加减乘除和循环、配合内置函数/方法来操作字符串,获得我们需要的结果。
这样做虽然看起来简单,符合直觉,但是随着函数逻辑变得复杂,这段代码会变得容易出错。
更好的选择是利用一些开源的对象化模块来操作他们。
这里使用了 SQLAlchemy
。
其它的替换思路:
Q: 目标/源字符串是结构化的,遵循某种格式吗?
其它的开源的对象化模块。
SQL:SQLAlchemy
XML:lxml
JSON、YAML …
尝试使用模板引擎而不是复杂字符串处理逻辑来达到目的。
Jinja2
Mako
Mustache
“为什么我们不直接把代码写成 if delta_seconds < 11 * 24 * 3600: 呢?”
“性能”,答案一定会是“性能”。 Python 是一门解释型语言,所以预先计算出 950400 正是因为我们不想让每次对函数 f1 的调用都带上这部分的计算开销。
不过事实是:即使我们把代码改成 if delta_seconds < 11 * 24 * 3600:,函数也不会多出任何额外的开销。
当我们的代码中需要出现复杂计算的字面量时,请保留整个算式吧。它对性能没有任何影响,而且会增加代码的可读性。
True
和 False
可以当成 1 和 0 使用
计数简化操作。
如果将某个布尔值表达式作为列表的下标使用,可以实现类似三元表达式的目的:
对于字符串我们常使用 \ 和 + 来讲字符串拆分成好几段。
还有一种简单的方法是用 ()。
用 ()括起来就可以随意拆行了。
对于多级缩进字符串:
可以调用其他的标准库来达到简化效果。
大数字也可以变得更加可阅读:
在数字之间加入下划线。
例如 : .split() 和 .rsplit() 的区别是,一个从左到右分割字符串,另一个是从右到左处理字符串。
合理使用一些现成 string 操作函数可以让工作事半功倍。
float ( " inf " )
和 float ( " -inf ")
,对应着无穷大和无穷小。
float( " -inf ") < 任意数值 < float( " inf ")
一些可以用上的场合。
如下:这个操作并不是线程安全的。
这个简单的累加语句,会被编译成包括取值和保存在内的好几个不同步骤。
而在多线程环境下,任意一个其他线程都有可能在其中某个步骤切入进来,阻碍你获得正确的结果。
常用 dis
模块去验证自己的操作,有时候,结果和我们预想的并不一样。
Python 的字符串拼接(+=)在 2.2 以及之前的版本确实很慢。
但之后的版本做了更新,效率已经大大提升,所有字符串的拼接还是可以使用的。
python使用数字与字符串方法技巧有哪些的详细内容,希望对您有所帮助,信息来源于网络。