Python|f-string让我喜欢Python的原因之一


写脚本,很大一部分工作是在做字符串的处理:分割(split),合并(join),格式化(format).前两部分,各种语言实现,大同小异.而格式化在Python中独树一帜的发明了f-string,它的方便与快捷最终征服了我,成为了Python的支持者.
f-string是Python3.6起才有的功能,这也是为啥写入手Python,直接选择3.7
简单演示:

name='rainbird'
print(f'my name is :{name}.')

输出
my name is :rainbird.

语法:

>>> var='text'
>>> print(f'xxx:{var}')
xxx:text
>>> print(F'xxx:{var}')
xxx:text

以f或F开头后跟一段文本

好吧,演示一段,我儿子幼儿园英语视频的开头:

>>> name='lofty'
>>> age = 5
>>> print(f'''
... Hello, everyone.
... My name is {name}.
... I am {age} years old.
... ''')

Hello, everyone.
My name is lofty.
I am 5 years old.

基本演示完了,还有哪些高级用法呢?

  • 输出{}
>>> print(f'{{花括号}}')
{花括号}
  • 字典使用
>>> user_info={'name':'lofty','age':5}
>>> print(f'''
... Hello, everyone.
... My name is {user_info['name']}.
... I am {user_info['age']} years old.
... ''')

Hello, everyone.
My name is lofty.
I am 5 years old.
  • 固定宽度
number = 5
print(f'''
{number:3} #占三位
{number:03} #占三位不足补0
''')
输出:
  5 #占三位
005 #占三位不足补0
  • 保留小数位
number = 5
print(f'''
{number}
{number:.1f}
''')
输出
5
5.0
  • 对齐
格式 作用
< 左对齐
> 右对齐
^ 居中
number = 5
print(f'''
{number:>3} #右对齐
{number:3} #占三位
{number:03} #占三位不足补0
''')
输出:
  5 #右对齐
  5 #占三位
005 #占三位不足补0
  • 进制转换
格式 作用
b 二进制
o 八进制
d 十进制
x 十六进制(字母小写)
X 十六进制(字母大写)
number = 14
print(f'''
{number:>4b} #二进制
{number:>4o} #八进制
{number:>4d} #十进制
{number:>4x} #十六小写
{number:>4X} #十六大写
''')
输出:
1110 #二进制
  16 #八进制
  14 #十进制
   e #十六小写
   E #十六大写

注意进行了右对齐哟

  • 调试功能
    输出变量名和值(要求Python:3.8)
number = 5
print(f'''
{number=}
''')

输出:
number=5

that's all


相关博文

About rainbird

IOS攻城狮
This entry was posted in linux, Mac, Python and tagged , , , , , , , , , . Bookmark the permalink.

发表评论