脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python 的 f-Strings 作用远超你的预期

Python 的 f-Strings 作用远超你的预期

2021-10-19 20:54Python七号somenzz Python

学过 Python 的朋友应该都知道 f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情。

Python 的 f-Strings 作用远超你的预期

学过 Python 的朋友应该都知道 f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情。

1、懒得再敲一遍变量名

  1. str_value="hello,pythoncoders"
  2. print(f"{str_value=}")
  3. #str_value='hello,pythoncoders'

2、直接改变输出结果

  1. num_value=123
  2. print(f"{num_value%2=}")
  3. #num_value%2=1

3、直接格式化日期

  1. importdatetime
  2. today=datetime.date.today()
  3. print(f"{today:%Y%m%d}")
  4. #20211019
  5. print(f"{today=:%Y%m%d}")
  6. #today=20211019

4、2/8/16 进制输出真的太简单

  1. >>>a=42
  2. >>>f"{a:b}"#2进制
  3. '101010'
  4. >>>f"{a:o}"#8进制
  5. '52'
  6. >>>f"{a:x}"#16进制,小写字母
  7. '2a'
  8. >>>f"{a:X}"#16进制,大写字母
  9. '2A'
  10. >>>f"{a:c}"#ascii码
  11. '*'

5、格式化浮点数

  1. >>>num_value=123.456
  2. >>>f'{num_value=:.2f}'#保留2位小数
  3. 'num_value=123.46'
  4. >>>nested_format=".2f"#可以作为变量
  5. >>>print(f'{num_value:{nested_format}}')
  6. 123.46

6、字符串对齐,so easy!

  1. >>>x='test'
  2. >>>f'{x:>10}'#右对齐,左边补空格
  3. 'test'
  4. >>>f'{x:*<10}'#左对齐,右边补*
  5. 'test******'
  6. >>>f'{x:=^10}'#居中,左右补=
  7. '===test==='
  8. >>>x,n='test',10
  9. >>>f'{x:~^{n}}'#可以传入变量n
  10. '~~~test~~~'
  11. >>>

7、使用 !s,!r

  1. >>>x='中'
  2. >>>f"{x!s}"#相当于str(x)
  3. '中'
  4. >>>f"{x!r}"#相当于repr(x)
  5. "'中'"

8、自定义格式

  1. classMyClass:
  2. def__format__(self,format_spec)->str:
  3. print(f'MyClass__format__calledwith{format_spec=!r}')
  4. return"MyClass()"
  5. print(f'{MyClass():balabala%%MYFORMAT%%}')

输出如下:

  1. MyClass__format__calledwithformat_spec='balabala%%MYFORMAT%%'
  2. MyClass()

最后

Python 的 f-string 非常灵活优雅,同时还是效率最高的字符串拼接方式:

Python 的 f-Strings 作用远超你的预期

以后关于字符串的格式化,就 f-string 了。

原文链接:https://mp.weixin.qq.com/s/y8p29I4U9fZVItJUY-bFuA

延伸 · 阅读

精彩推荐