详解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 相关文章推荐
开源Web应用框架Django图文教程
Mar 09 Python
关于python2 csv写入空白行的问题
Jun 22 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
python自动化生成IOS的图标
Nov 13 Python
python opencv摄像头的简单应用
Jun 06 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
Python内置函数及功能简介汇总
Oct 13 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
php反弹shell实现代码
2009/04/22 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
keras输出预测值和真实值方式
2020/06/27 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
怎样自定义一个异常类
2016/09/27 面试题
家长评语大全
2014/01/22 职场文书
人事文员岗位职责
2014/02/16 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
揭牌仪式主持词
2014/03/19 职场文书
促销活动总结报告
2014/04/26 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
如何书写邀请函?
2019/06/24 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
详解nginx进程锁的实现
2021/06/14 Servers