详解Python中的format格式化函数的使用方法


Posted in Python onNovember 20, 2019

format函数实现字符串格式化的功能

基本语法为:

通过 : 和 {} 来控制字符串的操作

一、对字符串进行操作

1. 不设置指定位置,按默认顺序插入

①当参数个数等于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

②当参数个数大于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢", "也不喜欢", "更不喜欢")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

③当参数个数习小于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢")
print(str_1)

运行结果:

程序会报错:越界

详解Python中的format格式化函数的使用方法

由此可以得出,当我们不指定参数位置的时候,format函数会帮我们按顺序将其接收到的参数,填入到{}中

2. 设置指定位置

当format接收到的参数个数大于{}或者我们想将不同{}替换为相同字符串的时候,我们可以在{}内指定接收第几个参数。format接收的参数,从0开始。

str_1 = "小明{1}小美,可是小美{3}小明,小美{0}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)

在这一句代码中,分别为不同的{}指定了接收的参数位置。
运行结果:

详解Python中的format格式化函数的使用方法

很显然,如果我们的{}的个数小于format的参数也是OK的。

str_1 = "小明{1}小美,可是小美{3}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

由此我们得出结论:

在使用format()函数的时候,我们给format()的个数是不限的,如果我们并没有在{}中指定位置,那么format()会自动按顺序将参数填入{},而如果我们为{}指定了位置,那么format()就会把指定位置的参数填入对应的{}中。

3.设置format()参数的值①直接在format()中进行赋值

str_1 = "博主:{name}, 博客地址:{url}".format(name="KaiSarH", url="https://blog.csdn.net/KaiSarH")

运行结果:

详解Python中的format格式化函数的使用方法

②通过传递多值参数向format传递参数进而对{}进行赋值

关于多值参数,可以看一下Python学习笔记之函数的参数和返回值

- 使用**传递字典。

在Python中,使用**可以传递一个字典参数,我们可以使用键名进行匹配,进而进行赋值

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

运行结果:

详解Python中的format格式化函数的使用方法

我们向format()传递的字典参数,所包含的键值对,必须包含所有的{}名。只能多(正确),不能少(报错)。

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_2)
dict_1 = {"name": "KaiSarH",
     "key": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_4)

运行结果:

详解Python中的format格式化函数的使用方法

注意:我们可以向format()中传递多个字典,但是不可以含有相同键。

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
dict_2 = {"name": "KaiSarH",
     "key": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1, **dict_2)
print(str_4)

运行结果:

详解Python中的format格式化函数的使用方法

- 传递列表

list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]
str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)

运行结果:

详解Python中的format格式化函数的使用方法

除了传递一个列表,我们也可以向format()中传递多个列表,只需保证取值的时候无误就可以。

list_1 = ["ZhangSan","https://blog.csdn.net/KaiSarH"]
list_2 = ["KaiSarH", "http:www.baidu.com"]
str_3 = "博主:{1[0]}, 博客地址:{0[1]}".format(list_1, list_2)

运行结果:

详解Python中的format格式化函数的使用方法

③向format()中传入对象,进行赋值

与列表相同,我们同样可以向format()中传递多个对象,只要在赋值的之后做好对应就可以。

class Dog:
  def __init__(self, name):
    self.name = name

class Mouse:
  def __init__(self, name):
    self.name = name


tom = Dog("Tom")
jerry = Mouse("Jerry")

str_1 = "{0.name} want to eat {1.name}".format(tom, jerry)
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

二、对数字进行格式化

对于数字的格式化,我们主要是在{}中进行设置格式化数字的多种方法

1.保留小数点后n位

格式:{:.nf}

print("	{:.1f}".format(3.1415926535))
print("	{:.3f}".format(3.1415926535))
print("	{:.4f}".format(3.1415926535))
print("	{:.6f}".format(3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

2.带符号保留小数点后n位

格式:{:+.nf}

print("	{:+.1f}".format(3.1415926535))
print("	{:+.3f}".format(-3.1415926535))
print("	{:+.4f}".format(3.1415926535))
print("	{:+.6f}".format(-3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

{:.nf}和 {:+.nf}的区别
负数无区别,整数有无符号。

print("	{:.1f}".format(3.1415926535))
print("	{:+.1f}".format(3.1415926535))
print("	{:.3f}".format(-3.1415926535))
print("	{:+.3f}".format(-3.1415926535))
print("	{:.4f}".format(3.1415926535))
print("	{:+.4f}".format(3.1415926535))
print("	{:.7f}".format(-3.1415926535))
print("	{:+.7f}".format(-3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

3.不带小数(只保留整数)

格式:{:.0f}

print("	{:.0f}".format(3.1415926535))
print("	{:.0f}".format(-3.1415926535))
print("	{:.0f}".format(3.8415926535))

运行结果:

详解Python中的format格式化函数的使用方法

4.如果整数的位数不足n位,在左边进行数字补零。如果已经够了n位,直接输出

格式:{:0>nd}

print("	{:0>2d}".format(5))
print("	{:0>3d}".format(5))
print("	{:0>5d}".format(123456))

运行结果:

详解Python中的format格式化函数的使用方法

5.如果整数的位数不足n位,在右边进行x补充。如果已经够了n位,直接输出

格式:{:x<4d}

print("{:x<2d}".format(5))
print("{:x<3d}".format(5))
print("{:x<4d}".format(123456))

运行结果:

详解Python中的format格式化函数的使用方法

很显然,在补充操作中,我们既可以指定在哪一边补充,也可以指定补充的值为什么。
我们也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f}对浮点数进行操作

6.以逗号分隔数字格式,每三位加入一个,

格式:{:,}

print("	{:,}".format(314156926))

运行结果:

详解Python中的format格式化函数的使用方法

7.百分比格式(在我理解,就是把数字×100,保留两位数字,然后加一个百分号)

格式:{:.2%}

print("{:.2%}".format(0.27896))

运行结果:

详解Python中的format格式化函数的使用方法

8.指数记法

格式:{:.2e}

print("{:.2e}".format(100))

运行结果:

详解Python中的format格式化函数的使用方法

9.右对齐(默认宽度为10)

格式:{:>10d}

print("	{:>10d}".format(100))
print("	{:>10d}".format(2))
print("	{:>10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

10.左对齐(默认宽度为10)

格式:{:<10d}

print("{:<10d}".format(100))
print("{:<10d}".format(2))
print("{:<10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

11.中间对齐(默认宽度为10)

格式:{:^10d}

print("{:^10d}".format(100))
print("{:^10d}".format(2))
print("{:^10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

12.进制——b、d、o、x 分别是二进制、十进制、八进制、十六进制。

格式:
‘{:b}'.format(11)
‘{:d}'.format(11)
‘{:\o}'.format(11)
‘{:x}'.format(11)
‘{:#x}'.format(11)
‘{:#X}'.format(11)

print("{:b}".format(125))
print("{:d}".format(125))
print("{:o}".format(125))
print("{:x}".format(125))
print("{:#x}".format(125))
print("{:#X}".format(125))

运行结果:

详解Python中的format格式化函数的使用方法

当我们在格式化中,传入的参数中包含{}的时候,我们可以用{}进行转义。
当我们直接在format()中对参数进行赋值的时候,我们必须要把对参数的赋值放在最后

print("{name}对应的位置是{{0}},{}对应的位置是{{1}}".format("489", "zhangsan", name="123"))

运行结果:

详解Python中的format格式化函数的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python高并发异步服务器核心库forkcore使用方法
Nov 26 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
简单谈谈Python的pycurl模块
Apr 07 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
Python绘制3D图形
May 03 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
pymongo中聚合查询的使用方法
Mar 22 Python
Python列表的切片实例讲解
Aug 20 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
Python数据分析pandas模块用法实例详解
Nov 20 #Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 #Python
Python求解正态分布置信区间教程
Nov 20 #Python
Python pandas RFM模型应用实例详解
Nov 20 #Python
使用Python实现正态分布、正态分布采样
Nov 20 #Python
Python pandas自定义函数的使用方法示例
Nov 20 #Python
Python求正态分布曲线下面积实例
Nov 20 #Python
You might like
使用数据库保存session的方法
2006/10/09 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
详解Python的Django框架中的通用视图
2015/05/04 Python
详解Swift中属性的声明与作用
2016/06/30 Python
python使用Matplotlib画条形图
2020/03/25 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
创先争优承诺书范文
2014/03/31 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
学生检讨书怎么写
2015/05/07 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技