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}
  • 相关阅读:
    ObjectiveC 日记⑦ 内存管理
    Jquery自定义分页插件
    C#中的静态类和静态成员
    多线程访问共同的代码或者对象:lock避免出错
    wordpress绑定新浪微博
    组态软件基础知识概述
    书籍推荐:《网站运营直通车:7天精通SEO》
    wordpress代码高亮插件推荐:AutoSyntaxHighlighter
    书籍推荐:《伟大是熬出来的:冯仑与年轻人闲话人生》
    wince平台用xml文件做配置文件
  • 原文地址:https://www.cnblogs.com/testlearn/p/11704984.html
Copyright © 2011-2022 走看看