zoukankan      html  css  js  c++  java
  • python3 f-string格式化字符串的高级用法

    从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!

    在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formattingstr.format()

    %-formatting

    字符串对象具有使用%运算符的内置操作,您可以使用它来格式化字符串。

    name = "tom"
    print("猫的名字叫%s"%name)

     输出:

    cat name is tom

    上面的示例代码看起来足够易读,但是,一旦开始使用多个参数和更长的字符串,代码就将变得不太容易阅读。

    name = "tom"
    age = 2
    action = "迅速"
    disposition = ""
    
    print("猫的名字叫%s,今年%d岁了,抓老鼠非常%s,但是非常%s,白天总睡觉。"%(name, age, action, disposition))

    输出:

    猫的名字叫tom,今天2岁了,抓老鼠非常迅速,但是非常懒,白天总睡觉。

    str.format()

    str.format()是对%-formatting的改进。它使用正常的函数调用语法,并且可以通过对要转换为字符串的对象的__format __()方法进行扩展。

    使用str.format(),替换字段用大括号标记:

    name = "tom"
    print("猫的名字叫{}".format(name))

    输出:

    猫的名字叫tom

    也可以通过引用其索引,以任何顺序引用变量:

    name = "tom"
    age = 2
    
    print("猫的名字叫{1},今年{0}岁了,今天星期{0}".format(age, name))

    输出:

    猫的名字叫tom,今年2岁了,今天星期2

     也可以使用 ** 来用字典,巧妙的完成格式化:

    cat = {"name": "tom", "age": 2}
    
    print("猫的名字叫{name},今年{age}岁了".format(**cat))

    输出:

    猫的名字叫tom,今年2岁了

    使用 str.format() 格式化代码比使用 %-formatting 更易读,但当处理多个参数和更长的字符串时,str.format()看起来仍然非常冗长。

    f-Strings:一种改进Python格式字符串的新方法

    'f-strings’是Python的一种新的字符串格式化方法,要使用f-strings,只需在字符串前加上f,语法格式如下:

    f ' <text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ... '

    基本用法

    name = "tom"
    age = 2
    
    print(f"猫的名字叫{name},今年{age}岁了")

    输出:

    猫的名字叫tom,今年2岁了

    实质上,把括号内的当作是变量即可。

    支持表达式

    name = "tom"
    age = 2
    
    print(F"猫的名字叫{name.upper()},今年{age}岁了")

    输出:

    猫的名字叫TOM,今年2岁了

    数字操作

    # 小数精度
    PI = 3.141592653
    f"Pi is {PI:.2f}"   # 输出 Pi is 3.14
    
    # 用0占位
    nums = f"{123:06d}"     # 输出 000123

    注意事项

    当需要输出{}时,有两种方式

    1、在{}使用 引号

    2、使用{{}}

    cat_name = "tom"
    
    # 使用单引号
    print(f"{'{cat_name:' + cat_name + '}'}")   # 输出结果:{cat_name:tom}
    # 使用{{}}
    print(f"{{cat_name:{cat_name}}}")        # 输出结果:{cat_name:tom}
  • 相关阅读:
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结v2
    JS设置cookie、读取cookie、删除cookie
    Atitit 图像处理30大经典算法attilax总结
    Atitit数据库层次架构表与知识点 attilax 总结
    Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
    Atitti css transition Animation differ区别
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
    Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  • 原文地址:https://www.cnblogs.com/testlearn/p/11704984.html
Copyright © 2011-2022 走看看