zoukankan      html  css  js  c++  java
  • 2、词法分析--4、字面值--3、格式化字符串

    目 录

    1、格式化字符串

    3.6 新版功能

    格式化字符串(f-string),是带有 fF 前缀的字符串。

    这种字符串可包含替换字段,替换字段是以 { } 标示的表达式。

    1.1 字符串语法

    f_string          ::=  (literal_char | "{{" | "}}" | replacement_field)*
    
    replacement_field ::=  "{" f_expression ["!" conversion] [":" format_spec] "}"
    
    f_expression      ::=  (conditional_expression | "*" or_expr)
            ("," conditional_expression | "," "*" or_expr) * 
            [","] | yield_expression
    
    conversion        ::=  "s" | "r" | "a"
    
    format_spec       ::=  (literal_char | NULL | replacement_field)*
    
    literal_char      ::=  <any code point except "{", "}" or NULL>
    
    

    1.2 表达式替换规则

    • { { } }: 双花括号会被替换为响应的单个花括号。

    • { }: 单花括号标志一个替换字段,以一个 Python 表达式开头。

      • 表达式后可能有一个以叹号 ! 标示的转换字段。
      • 后面还可能带有一个以冒号 : 标示的格式说明符。
    • conversion:转换符

      • 如果指定了转换符,表达式的求值结果会先转换再格式化

      • !s ------------------ str()

        返回 object 的字符串版本。如果未提供 object 则返回空字符串

      • !r ------------------repr()

        返回包含一个对象的可打印形式的字符串。

      • !a ------------------ascii()

        返回一个对象的可打印的 ASCII 编码的字符串。

    • format_spec : 格式化说明符

      • 将表达式转化为 format_spec 控制的格式化表示。

    >>> name = "Fred"
    
    >>> f"He said his name is {name!r}."
    	"He said his name is 'Fred'."
        
    >>> f"He said his name is {repr(name)}."  # 使用 !r 
    	"He said his name is 'Fred'."
        
    >>> width = 10
    
    >>> precision = 4
    
    >>> value = decimal.Decimal("12.34567")
    
    >>> f"result: {value:{width}.{precision}}"  # 表达式格式化
    	'result:      12.35'
        
    >>> today = datetime(year=2017, month=1, day=27)
    
    >>> f"{today:%B %d, %Y}"  # 格式化日期
    	'January 27, 2017'
        
    >>> number = 1024
    
    >>> f"{number:#0x}"  # 进制转化
    	'0x400'
        
    
    转载请声明https://www.cnblogs.com/wdzn/
  • 相关阅读:
    IOS开发-点击View取消键盘输入
    IOS读写Plist文件最简单方法
    谷歌眼镜Mirror app开发之简单新闻浏览页面
    Shell下获取Android设备信息
    PhpStrom与PyCharm的激活码
    python之数据类型的转换(eval,json.dumps,json.loads)
    网络安全基础2--网络协议,服务,安全
    网络安全基础1
    第二条用例需要用到第一条用例返回结果中的某些值
    python更新字典下嵌套数组下嵌套字典的值
  • 原文地址:https://www.cnblogs.com/wdzn/p/12244656.html
Copyright © 2011-2022 走看看