Python 的 f-strings,远比你想象的要强大!

Python学习与数据挖掘 2021-10-26 07:48:39
Python 比你 strings f-strings 远比

大家好,学过 Python 的朋友应该都知道 f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情。欢迎收藏学习,喜欢点赞支持。文末提供技术交流群

1、懒得再敲一遍变量名

str_value = "hello,python coders"
print(f"{
 str_value = }")
# str_value = 'hello,python coders'

2、直接改变输出结果

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

3、直接格式化日期

import datetime
today = datetime.date.today()
print(f"{
today: %Y%m%d}")
# 20211019
print(f"{
today =: %Y%m%d}")
# today = 20211019

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

>>> a = 42
>>> f"{
a:b}" # 2进制
'101010'
>>> f"{
a:o}" # 8进制
'52'
>>> f"{
a:x}" # 16进制,小写字母
'2a'
>>> f"{
a:X}" # 16进制,大写字母
'2A'
>>> f"{
a:c}" # ascii 码
'*'

5、格式化浮点数

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

6、字符串对齐,so easy!

>>> x = 'test'
>>> f'{
x:>10}' # 右对齐,左边补空格
' test'
>>> f'{
x:*<10}' # 左对齐,右边补*
'test******'
>>> f'{
x:=^10}' # 居中,左右补=
'===test==='
>>> x, n = 'test', 10
>>> f'{
x:~^{
n}}' # 可以传入变量 n
'~~~test~~~'
>>>

7、使用 !s,!r

>>> x = '中'
>>> f"{
x!s}" # 相当于 str(x)
'中'
>>> f"{
x!r}" # 相当于 repr(x)
"'中'"

8、自定义格式

class MyClass:
def __format__(self, format_spec) -> str:
print(f'MyClass __format__ called with {
format_spec=!r}')
return "MyClass()"
print(f'{
MyClass():bala bala %%MYFORMAT%%}')

输出如下:

MyClass __format__ called with format_spec='bala bala %%MYFORMAT%%'
MyClass()

最后

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

在这里插入图片描述

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

如果觉得有收获,还请点赞、在看、关注,感谢支持!

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

长按关注

版权声明
本文为[Python学习与数据挖掘]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_38037405/article/details/120945165

  1. Python project management and construction, these four tools are enough!
  2. IDE的使用,pycharm引入Python库
  3. In the 120 series columns, you can learn the python beautiful oup4 module, 7000 word blog + climb the ninth workshop network
  4. Django运行xadmin 报错解析 ImportError: cannot import name 'DEFAULT_FORMATS' from 'import_export.admin'
  5. Python程序大学课程写程序
  6. Programme Python Programme d'études collégiales
  7. Python程序大學課程寫程序
  8. Django runxadmin Error resolution importerror: cannot Import name 'default Formats' from 'import _ Export.admin»
  9. Python 函数式编程,看这一篇足够了!
  10. 太棒了!11个好用到起飞的「Python字典」知识点!
  11. 一道Python题目,求解答!
  12. 一道Python題目,求解答!
  13. Un problème Python, s'il vous plaît!
  14. C'est génial! 11 points de connaissance du dictionnaire Python pour le décollage!
  15. Python Functional Programming, This is enough!
  16. 在python中beta分布的问题?
  17. 一个python习题,没有什么头绪,是关于进制的转换和绘制的,想了几天了,不仅仅是2,8,16这种常见的进制转换
  18. Un exercice Python, qui n'a pas beaucoup d'idées, est sur la conversion et le rendu décimaux et a pensé pendant quelques jours, pas seulement 2, 8, 16 cette conversion décimale commune
  19. Un problème avec la distribution bêta en python?
  20. python实现简单的读取excel 内容,报错
  21. L'implémentation Python lit simplement le contenu d'Excel et signale les erreurs
  22. 用Python定义一个函数,接收n个数字,求这些参数数字的和
  23. Définissez une fonction en python, recevez n nombres et additionnez ces nombres de paramètres
  24. 上电Python写文件后,再断电后导致文件内容丢失
  25. 上電Python寫文件後,再斷電後導致文件內容丟失
  26. Une fois que Python est allumé pour écrire des fichiers, le contenu des fichiers est perdu après une panne de courant
  27. python套接字编程报错:ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
  28. 【Python从入门到精通】(二)怎么运行Python呢?有哪些好的开发工具(PyCharm)
  29. 【Python从入门到精通】(二)怎么运行Python呢?有哪些好的开发工具(PyCharm)
  30. Python语法1
  31. 2018年度最受推荐的10本Python书籍(初学者必看)
  32. Les 10 livres Python les plus recommandés en 2018 (obligatoire pour les débutants)
  33. Syntaxe Python 1
  34. Python语法1
  35. 在python 运行celery时候 AttributeError: 'NoneType' object has no attribute 'Redis'错误
  36. Attributeerror: 'nonetype' Object has no attribute 'redis' Error when Celery is running in Python
  37. Syntaxe Python 1
  38. Python celery is a plug-in that focuses on distributed asynchronous task processing and task scheduling!
  39. Python celery is a plug-in that focuses on distributed asynchronous task processing and task scheduling!
  40. 在python,使用scrapy爬虫框架
  41. It's time for everyone to see your blog written in Django (including deployment tutorial video)
  42. Python扩展速记符 要求用for循环,if语句
  43. Python擴展速記符 要求用for循環,if語句
  44. Le sténographe d'extension Python nécessite une boucle pour, si instruction
  45. Python+人工智能就业班v5.0wumi
  46. python编程技术的题目,希望能得到解答
  47. Pandas determines the header row dynamically
  48. 关于#python#的问题:模拟登陆后能获取到cookie,就是cookie一天就过期
  49. pandas为dataframe添加新的数据行(rows)、在dataframe后面纵向添加一行数据(数据为列表list形式)、列有不匹配将会使用NA值进行填补
  50. pandas使用组合条件筛选、过滤数据行
  51. 热烈祝贺1024,求解Python3.10闪退问题
  52. Python基础题练习题库有没呢?
  53. python构建神经网络,正向和反向传播
  54. python爬虫输入数字翻页才成功,用变量代替不成功,为什么?
  55. 【Python 爬虫】 2、HTTP基本原理
  56. 【Python 爬虫】 1、爬虫基础概念
  57. Python中如何用find函数计数?
  58. 一文搞懂Python装饰器
  59. python数据结构之递归
  60. 关于#python#的问题:为什么这个open函数会报错