详解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中eval带来的潜在风险代码分析
Dec 11 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python中sort和sorted排序的实例方法
Aug 26 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
python微信公众号开发简单流程实现
Mar 09 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
python实现图像外边界跟踪操作
Jul 13 Python
python中实现栈的三种方法
Dec 19 Python
Python+Tkinter制作专属图形化界面
Apr 01 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
解析如何用php screw加密php源代码
2013/06/20 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Python random模块的使用示例
2020/10/10 Python
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
消防器材管理制度
2014/01/28 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
考核评语大全
2014/04/29 职场文书
商务经理岗位职责
2014/07/30 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
信仰纪录片观后感
2015/06/08 职场文书
红高粱观后感
2015/06/10 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android