标签:格式化 name 词法 字符串 expression spec 表达式
1、格式化字符串
3.6 新版功能
格式化字符串(f-string
),是带有 f
或 F
前缀的字符串。
这种字符串可包含替换字段,替换字段是以 { }
标示的表达式。
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'
标签:格式化,name,词法,字符串,expression,spec,表达式 来源: https://www.cnblogs.com/wdzn/p/12244656.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。