前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3.6 的字符串处理f-string的使用技巧

python3.6 的字符串处理f-string的使用技巧

作者头像
鳄鱼儿
发布2024-05-21 16:51:45
850
发布2024-05-21 16:51:45
举报

前言

上一篇文章我们提到了f-string(F字符串)的使用,以及另两种python字符串处理方式。

python3.6 的三种字符串处理,formatting、str.format()、f-string,在这篇文章中讲解了F字符串的基础使用,对于F字符串有着很多的使用技巧,在这篇文章中你会见识到更多的F字符串的使用技巧。

下面博主将介绍python3.6 的字符串处理f-string的使用技巧。

f-string的使用技巧

f-string填充

填充分为左填充、右填充、居中填充。

左填充表示在字符串左侧填充,右填充表示在字符串右侧填充,居中填充表示在字符串左右两侧对称填充。

代码语言:javascript
复制
name = "鳄鱼儿"
print(f"{name:>20}")
print(f"{name:<20}")
print(f"{name:^20}")

#                 鳄鱼儿
#鳄鱼儿
#        鳄鱼儿
  • >表示左填充
  • <表示右填充
  • ^表示居中填充。

记忆:括号口朝左边,就表示左填充;括号口朝右边,就表示右填充。

f-string保留小数位数 f"{num:xxx}"

代码语言:javascript
复制
a = 123.456

# 只指定width
print(f"{a:10}")
#'   123.456'

# 指定0width
print(f"{a:010}")
#'000123.456'

# 使用width.precision
print(f"{a:10.1f}")
#'     123.5'
print(f"{a:.2f}")
#'123.46'

其中xxx的格式如下

格式

说明

width

整数width指定宽度

0width

整数width指定宽度,0表示最高位用0补足宽度

width.precision

整数width指定宽度,整数precision表示精度(保留小数点后几位小数)

f-string进制转换

还可以用数字进行进制转换,如:十六进制转换、二进制转换、八进制转换、科学计数法等

代码语言:javascript
复制
number = 15

# 十六进制转换
print(f"hex: {number:#0x}")
# hex: 0xf

# 二进制转换
print(f"binary: {number:b}")
# binary: 1111

# 八进制转换
print(f"octal: {number:o}")
# octal: 17

# 科学计数法
print(f"scientific: {number:e}") 
# scientific: 1.500000e+01

f-string千位符分隔符、百分比

千位符分隔符和百分比也可以很简单的实现。

代码语言:javascript
复制
a = 1000000 
print(f"{a= :,}") 
# a= 1,000,000

per = 0.59596
print(f"{per = :.2%}")
# per = 59.60%

:.2%即为设置保留 2 位小数并在字符串末尾添加一个百分号,且会自动根据保留小数位进行四舍五入。

f-string调试模式 {variable = }

你仔细观察下上面的例子,是不是发现语法书写变化了,这种写法就是f-string调试模式。

f-string 的调试功能是另一种书写语法,即使用 {variable = } 代替 variable = {},如下面代码所示。

代码语言:javascript
复制
a = 1
b = 2

print(f"a = {a}, b = {b}")
# a = 1, b = 2
print(f"{a = }, {b = }")  
# a = 1, b = 2

可以看到使用调试模式减少了代码量,同时输出的内容是一致的。由此可见调试模式可以节省大量时间和精力,使代码看起来更整洁。

在 f-string 的调试模式中,还可以执行数学运算。

代码语言:javascript
复制
print(f"{a * b = }")
# a * b = 2

f-string日期格式化

如果想格式化日期,可以创建一个示例日期时间值。就像在应用程序中格式化日期一样,可以在 f-string 中定义你想要的格式,例如:<date_format>

代码语言:javascript
复制
import datetime

today = datetime.datetime.utcnow()
print(f"datetime : {today}")
# datetime : 2024-02-28 06:11:04.848944

print(f"date time: {today:%m/%d/%Y %H:%M:%S}") # 没有微秒
# date time: 02/28/2024 06:11:04

print(f"date: {today:%m/%d/%Y}") # 仅日期
# date: 02/28/2024

print(f"time: {today:%H:%M:%S.%f}") # 仅时间
# time: 06:11:04.848944

print(f"time: {today:%H:%M:%S %p}") # 时间带上上午/下午
# time: 06:11:04 AM

print(f"time: {today:%H:%M}") # 24小时制时间
# time: 06:11

print(f"locale appropriate: {today:%c}") # 本地的适当日期和时间表示法
# locale appropriate: Wed Feb 28 06:13:35 2024

print(f"weekday: {today:%A}") # 获取当前日期是星期几
# weekday: Wednesday

print(f"day of year: {today:%j}") # 获取当前日期是一年中的第几天
# day of year: 059

day_of_year = f"{today:%j}" 
print(f"progress % year: {int(day_of_year)/365 * 100:.2f}%")# 获取本年度已过去时间(百分比)
# progress % year: 16.16%
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • f-string的使用技巧
    • f-string填充
      • f-string保留小数位数 f"{num:xxx}"
        • f-string进制转换
          • f-string千位符分隔符、百分比
            • f-string调试模式 {variable = }
              • f-string日期格式化
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档