当前位置: 首页 > news >正文

Python之字符串格式化

Python之字符串格式化

格式化

  • 简单的使用+或者join也可以拼接字符串,但是需要先转换数据到字符串后才能拼接。

C风格printf-style

  • 占位符:使用%和格式字符,例如%s、%d
  • 修饰符:在占位符中还可以插入修饰符,例如%03d
  • format % values
    • format是格式字符串,values是被格式的值
    • 格式字符串和被格式的值之间使用%
    • values只能是一个对象,可以是一个值,可以是一个元素个数和占位符数目相等的元组,也可 以是一个字典
"%d" % 10
# C风格
# 返回结果:'10'
"***[%d" % 10
# d = digit 数字
# f = float 浮点数
# 返回结果:'***[10'
"***[%d %d" % (100, 20)
# 返回结果:'***[100 20'
"***[%d %f" % (100, 1.2)
# f 默认精度6位
# 返回结果:'***[100 1.200000'
"***[%d %.1f" % (100, 1.2)
# f 指定精度
# 返回结果:'***[100 1.2'
"I'm %d" % 10
# 返回结果:"I'm 10"
"I'm %3d" % 20
# 右对齐
# 返回结果:"I'm  20"
"I'm %-3d" % 20
# 左对齐
# 返回结果:"I'm 20 "
"%d*%d=%d" % (3, 3, 9)
# 返回结果:'3*3=9'
"My name is %(name)s, I'm %(age)d" % {'age':20, 'name':'Jerry'}
# 返回结果:"My name is Jerry, I'm 20"

format函数

Python2.5之后,字符串类型提供了format函数,功能更加强大。
“{} {xxx}”.format(*args, **kwargs) -> str

  • args是可变的位置参数
  • kwargs是可变关键字参数,写作a=100
  • 使用花括号作为占位符
  • {}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值
  • {xxx}表示在关键字参数中搜索名称一致的
  • {{}} 表示打印花括号
age = 20; name="Tom"
# 定义变量,这样的方式不推荐使用。
f'{age} {name}'
# f字符串
# 返回结果:'20 Tom'
"{} {} {} {a} {b}".format(1, 2, 3, a=100, b=200)
# format函数,1,2,3按顺序对应, a,b按位置对应
# 返回结果:'1 2 3 100 200'
"{0[0]} --- {0[1]}".format((1,22))
# ((1,22),) 不推荐这样写
# 返回结果:'1 --- 22'
"{} +++ {}".format(*(1, 22))
# *解构
# 返回结果:'1 +++ 22'
"{} +++ {}".format(*(1, 22))
# *解构
# 返回结果:'1 +++ 22'

日期格式化

import datetime
# 导入datetime模块
d1 = datetime.datetime.now()
# 将当前时间,写入到一个变量d1中
d1
# 返回结果:datetime.datetime(2023, 10, 6, 17, 23, 10, 479510)
"{}".format(d1)
# 返回结果:'2023-10-06 17:23:10.479510'
"{:%Y/%m/%d %H:%M:%S}".format(d1)
# Y(年)m(月)d(日)H(时)M(分)S(秒) 注意区分大小写。
# 返回结果:'2023/10/06 17:23:10'

相关文章:

  • 【Django 笔记】第一个demo
  • Linux-正则三剑客
  • 怎么将Linux上的文件上传到github上
  • 总结二:linux面经
  • PyTorch入门之【AlexNet】
  • [React源码解析] React的设计理念和源码架构 (一)
  • JMeter性能测试
  • [架构之路-228]:目标系统 - 纵向分层 - 计算机硬件与体系结构 - 硬盘存储结构原理:如何表征0和1,即如何存储0和1,如何读数据,如何写数据(修改数据)
  • 【17】c++设计模式——>原型模式
  • Raid10--Raid01介绍
  • 华为云云耀云服务器L实例评测|基于canal缓存自动更新流程 SpringBoot项目应用案例和源码
  • 关于Go语言的底层,Slice,map
  • 博弈论——伯特兰德寡头模型(Bertrand Model)
  • 利用fitnesse实现api接口自动化测试
  • Waves 14混音特效插件合集mac/win
  • 目前制造企业生产计划现状是什么?有没有自动化排产系统?
  • minio分布式文件存储
  • SCROLLINFO scrollInfo; 2023/10/5 下午3:38:53
  • 【C语言】善于利用指针(二)
  • SpringCloud(二)Docker、Spring AMQP、ElasticSearch
  • 继71路之后,上海中心城区将迎来第二条中运量公交
  • 中央结算公司:减免境外央行类机构账户开户费用
  • 《新时代的中国国家安全》白皮书(全文)
  • 马上评丨未成年人“擦边”短视频岂能成流量密码
  • 来伊份深夜回应“粽子中吃出疑似创可贴”:拿到实物后会查明原因
  • 快评|印巴为何停火?已达成“一场胜利,各自表述”的效果