IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python技巧学习(2)-数值与字符串

    admin发表于 2024-02-21 15:36:56
    love 0

    i7WETf

    趁着热情继续,今天就来看看数值与字符串,跟着书本的节奏就是从最基础的数据类型开始,然后逐级进阶吧,大部分书的结构都是这样吧!

    今天看看博主觉得还不错的几个地方。

    No1:字符串格式话使用 f 进行格式化

    目前博主使用的大量格式化方式还是基于format,也有看到其他同事提交的代码里使用f进行格式化。的确f格式化会显得代码更简洁,后续博主也会使用起来。但是有些时候还是觉得format比较方,比如下面这个场景

    >>> '{0}:{0}网站是由{1}于{2}开始搭建'.format('算法之道','xaiocui',2015)
    '算法之道:算法之道网站是由xaiocui于2015开始搭建'
    >>>
    

    可以看到format可以借助索引来实现字段重复赋值,这个也是不错的。

    No2:几个我不太常用的内置方法,但是看起来还不错

    #partition方法、translate方法
    #下面就来看看这两个方法的用法
    # patition vs split
    >>> 'test:alg'.partition(':')
    ('test', ':', 'alg')
    >>> 'test:alg'.split(':')
    ['test', 'alg']
    >>> 'alg'.partition(':')
    ('alg', '', '')
    #translate vs replace
    >>> s='test,.alg'
    >>> template=s.maketrans(',.',',。')
    >>> s.translate(template
    ... )
    'test,。alg'
    >>> s.replace(',',',').replace('.','。')
    'test,。alg'
    >>>
    

    从上面的代码来看partition划分结果的时候会固定产生3元组,所以上面的例子中不包含分隔符也会返回默认的空字符串结果,这个在按照分隔符进行key:value提取的时候会很方便,不需要自己额外的判断时候有key或者value

    translate的好处就是不需要进行无止尽的repalce操作,一次定义就可以解决问题。

    No3:使用枚举类

    很多时候代码里会有一些业务定义的常量,一般不多的时候我会使用大写的变量来标识。但是如果越来越多,且代表不同的含义,如果使用枚举类进行分门别类就会好懂很多。

    class UserType(int,Enum):
      VIP=0
      NORMAL=1
      BAN=2
      ADMIN=3
    

    上面定义了一个用户类型枚举类,这样在使用的时候会更加清晰易懂。

    No4:模版处理字符串

    这里推荐的是jinja模版,以前在写web页面的时候使用jinja渲染html就觉得很好用,这里处理非结构化的字符串如果使用jinja模版会更好看。但是个人感觉使用的场景会比较少,因为此时的字符串都会比较长。说到这里就不得不提在llm代码经常会遇到的prompt模版,有时候我还在用常规的字符串格式化方式,也有使用langchain里面的template模版函数,这里使用jinja模版是不是也可以呢?



沪ICP备19023445号-2号
友情链接