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

【python基础】format格式化函数的使用

文章目录

  • 前言
  • 一、format()内容匹配替换
    • 1、序号索引
    • 2、关键字
    • 3、列表索引
    • 4、字典索引
    • 5、通过类的属性
    • 6、通过魔法参数
  • 二、format()数字格式化


前言

语法:str.format()
说明:一种格式化字符串的函数。


一、format()内容匹配替换

1、序号索引

在没有参数序号时,参数是按顺序使用的。

主要格式:print(‘{} {}’.format(‘str1’,‘str2’))

print('{} {}'.format('hello','world'))
##输出结果:hello world

可以通过format()参数序号指定参数的使用,参数从0开始编号(与索引编号规律一致)

主要格式:print(‘{0} {1}’.format(‘str1’,‘str2’))

print('{0} {1}'.format('hello','world'))
输出结果:hello world

一个参数可以多次插入

print('{0} {1} {0}'.format('hello','world'))
##输出结果:hello world helloprint('{1} {1} {0}'.format('hello','world'))
##输出结果:world world hello

2、关键字

主要格式:print(‘{关键字索引1} {关键字索引2}’.format(关键字索引1=‘关键字1’,关键字索引2=‘关键字2’))

obj = 'world'
name = 'lily'
print('hello {obj},my name is {name}'.format(obj=obj,name = name))##输出结果:hello world,my name is lily

3、列表索引

主要格式:

  • list1=[‘列表值1’,‘列表值2’,‘列表值3’…]
  • print(‘{list[列表索引1],list[列表索引2]}’.format(list=list1))

在format格式化时,可以使用*或者**对list进行拆分。

  • print(‘{list[列表索引1],list[列表索引2]}’.format(*list1))
list = ['world','lily']
print('hello {names[0]},my name is {names[1]}'.format(names=list))
##输出结果:hello world,my name is lilylist = ['world','lily']
print('hello {0[0]},my name is {0[1]}'.format(list)) #"0"是必须的。
##输出结果:hello world,my name is lilylist = ['world','lily']
print('hello {0},my name is {1}'.format(*list)) #"0"是必须的。
##输出结果:hello world,my name is lily

4、字典索引

主要格式:

  • dict1={‘键1’:‘值1’,‘键2’:‘值2’,…}
  • print(‘{dict[键1]},{dict[键2]}’.format(dict=dict1))

在format格式化时,可以使用**进行字典拆分。

  • print(‘{dict1[键1]},{dict1[键2]}’.format(**dict1))
dict={"obj":"world","name":"lily"}
print('hello {names[obj]},my name is {names[name]}'.format(names=dict))
##输出结果:hello world,my name is lilydict={"obj":"world","name":"lily"}
print('hello {obj},my name is {name}'.format(**dict))
##输出结果:hello world,my name is lily

5、通过类的属性

主要格式:

  • 类定义
    class 类名字():
    类内定义=‘类值’

    print(‘value.类内定义’.format(value=类名字))
class Value1():obj='lily'name='world'
print('hello {value.obj} , my name is {value.name}'.format(value=Value1))##输出结果:hello world,my name is lily

6、通过魔法参数

args=[',','one']
kwargs={"obj":"world","name":"lily"}
print('hello {obj},my name is {name}'.format(*args,**kwargs))
##输出结果:hello world,my name is lilyprint('hello {obj},my name is {name}'.format(',','one',obj='world',name='lily'))
##输出结果:hello world,my name is lily

魔法参数跟函数中使用的性质是一样的,魔法参数详情可参考文档:魔法参数*args, **kwargs的使用

二、format()数字格式化

:<填充><对齐><符号><宽度>,<精度><类别>
用于填充单个字符^ 表示居中,
<表示左对齐,
> 表示右对齐
+ 表示在正数前显示 +,负数前显示 -;
- 表示正数前不显示,负数前显示;
空格表示正数前加空格,负数前加负号;
#对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;
反之则不显示前缀。
槽的设定,
输出宽度
数字的千位分隔符,适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,d,o,x ,
浮数类型e,E,f,%

b,d,o,x 分别是二进制,十进制,八进制,十六进制。
e,E,f,% 分别是小写字母e的科学计数法,大写字母E的科学计数法,转换为浮点数(默认小数点后六位),显示百分比(默认小数点后六位)

举例:

  • <填充>与<宽度>
print('{:0>2d}'.format(5)) #数字补零,填充左边,宽度为2
##输出结果:05print('{:x<4d}'.format(5)) #数字补x,填充左边,宽度为4
##输出结果:5xxx
  • <对齐>与<宽度>
print('{:>10d}'.format(13))  #右对齐 (默认, 宽度为10)
##输出结果:        13print('{:<10d}'.format(13))  #左对齐,宽度为10
##输出结果:13        print('{:^10d}'.format(13))  #中间对齐,宽度为10
##输出结果:    13    
  • <,>
print('{:,}'.format(1000000)) #以逗号分隔数字格式。
##输出结果:1,000,000
  • <.精度> (注意里面有个点号)
print('{:.5}'.format(12.397539)) #保留5位数
##输出结果:12.398
  • <符号>与 <类型>
print('{:.2%}'.format(0.25)) #百分比格式
##输出结果:25.00%print('{:.2e}'.format(100000000)) #指数记法
##输出结果:1.00e+08print('{:.2f}'.format(3.1415926)) #保留小数点后两位
##输出结果:3.14print('{:+.2f}'.format(3.1415926)) #带符号保留小数点后两位
##输出结果:+3.14print('{:-.2f}'.format(-1)) #带符号保留小数点后两位
##输出结果:-1.00print('{:.0f}'.format(2.89)) #不带小数,四舍五入
##输出结果:3
print('{:b}'.format(11)) #二进制表示 
##输出结果:1011print('{:d}'.format(11)) #十进制表示
##输出结果:11print('{:o}'.format(11)) #八进制表示
##输出结果:13print('{:x}'.format(11)) #十六进制表示
##输出结果:bprint('{:#X}'.format(11))
##输出结果:0XBprint('{:#x}'.format(11))
##输出结果:0xb

参考文档:
https://blog.csdn.net/weixin_69553582/article/details/129830874

http://www.lryc.cn/news/215565.html

相关文章:

  • Java web(三):Http、Tomcat、Servlet
  • Java实现Hive UDF详细步骤 (Hive 3.x版本,IDEA开发)
  • Vue进阶(幺陆肆)Apache的Access.log分析总结
  • Apple 苹果发布 M3、M3 Pro 和 M3 Max 芯片
  • Linux常用命令及主流服务部署大全
  • list-watch集群调度
  • 深度强化学习中的神经网络部分的作用是什么?一般如何选择合适的神经网络呢?
  • 若依系统的数据导入功能设置
  • vue页面父组件与子组件相互调用方法和传递参数值
  • vim使用
  • 人工智能基础_机器学习014_BGD批量梯度下降公式更新_进一步推导_SGD随机梯度下降和MBGD小批量梯度下降公式进一步推导---人工智能工作笔记0054
  • Android STR研究之一
  • 单链表的详解实现
  • 抛弃 scp 改用 rsync,让 Linux 下文件传输高效无比
  • Leetcode 2919. Minimum Increment Operations to Make Array Beautiful
  • 关键词搜索亚马逊商品数据接口(标题|主图|SKU|价格|优惠价|掌柜昵称|店铺链接|店铺所在地)
  • [计算机提升] Windows系统软件:娱乐类
  • 【Git企业开发】第五节.远程操作
  • idea 配置checkstyle全过程
  • 小程序如何设置自动使用物流账号发货
  • 高性能渲染——详解Html Canvas的优势与性能
  • 2023.10 各个编程语言 受欢迎指数 排行
  • 『PyQt5-基本控件』| 15 如何设置主窗口居中?退出应用程序如何操作?
  • scrapy+selenium框架模拟登录
  • 【实验五】题解
  • Android开发知识学习——Kotlin基础
  • C++——定义一个 Book(图书)类
  • 深度学习之基于YoloV5的道路地面缺陷检测系统(UI界面)
  • AcWing94. 递归实现排列型枚举:输出1~n的全排列
  • 神经网络多种注意力机制原理和代码讲解