python语言format用法_详解Python中的format格式化函数的使用方法

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

基本语法为:

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

一、对字符串进行操作

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

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

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

print(str_1)

运行结果:

2019112011495763.png

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

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

print(str_1)

运行结果:

2019112011495764.png

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

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

print(str_1)

运行结果:

程序会报错:越界

2019112011495765.png

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

2. 设置指定位置

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

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

print(str_1)

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

运行结果:

2019112011495766.png

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

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

print(str_1)

运行结果:

2019112011495767.png

由此我们得出结论:

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

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

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

运行结果:

2019112011495768.png

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

- 使用**传递字典。

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

dict_1 = {"name": "KaiSarH",

"url": "https://blog.csdn.net/KaiSarH"}

str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

运行结果:

2019112011495769.png

我们向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)

运行结果:

2019112011495870.png

注意:我们可以向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)

运行结果:

2019112011495871.png

- 传递列表

list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]

str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)

运行结果:

2019112011495872.png

除了传递一个列表,我们也可以向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)

运行结果:

2019112011495873.png

③向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)

运行结果:

2019112011495874.png

二、对数字进行格式化

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

1.保留小数点后n位

格式:{:.nf}

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

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

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

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

运行结果:

2019112011495875.png

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

格式:{:+.nf}

print("{:+.1f}".format(3.1415926535))

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

print("{:+.4f}".format(3.1415926535))

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

运行结果:

2019112011495876.png

{:.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))

运行结果:

2019112011495877.png

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

格式:{:.0f}

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

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

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

运行结果:

2019112011495878.png

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

格式:{:0>nd}

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

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

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

运行结果:

2019112011495879.png

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

格式:{:x<4d}

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

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

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

运行结果:

2019112011495880.png

很显然,在补充操作中,我们既可以指定在哪一边补充,也可以指定补充的值为什么。

我们也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f}对浮点数进行操作

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

格式:{:,}

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

运行结果:

2019112011495881.png

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

格式:{:.2%}

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

运行结果:

2019112011495882.png

8.指数记法

格式:{:.2e}

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

运行结果:

2019112011495883.png

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

格式:{:>10d}

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

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

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

运行结果:

2019112011495884.png

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

格式:{:<10d}

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

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

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

运行结果:

2019112011495885.png

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

格式:{:^10d}

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

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

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

运行结果:

2019112011495886.png

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))

运行结果:

2019112011495987.png

当我们在格式化中,传入的参数中包含{}的时候,我们可以用{}进行转义。

当我们直接在format()中对参数进行赋值的时候,我们必须要把对参数的赋值放在最后

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

运行结果:

2019112011495988.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何提高英文的科研写作能力

作为一个科研工作者&#xff0c;在国际学术期刊上发表科研论文是与同行交流、取得国际影响的必经之路。有些国内的科学家&#xff0c;实验做得很漂亮&#xff0c;但常常苦恼于论文的写作力不从心&#xff0c;成为国际交流的一大障碍。本文从博主的亲身体验出发&#xff0c;给博…

电子书专题

EXE电子书与垃圾 作者&#xff1a;马健邮箱&#xff1a;stronghorsetom.com主页&#xff1a;http://stronghorse.yeah.net 目前EXE格式的电子书在网络上比较流行&#xff0c;制作工具五花八门&#xff0c;eBook Workshop和eBook Edit Pro是其中比较流行的两个。但是又有多少人知…

python变量标识符_python中的变量和标识符

字面量&#xff1a; 就是一个一个的值&#xff0c;如1、2、3、‘hello’&#xff0c;就是它自己本身表达的字面值、字面意思&#xff0c;在程序中可以直接使用。 变量&#xff08;variable&#xff09;&#xff1a; 可以用来保存字面量&#xff0c;变量本身没有任何意思&#x…

Slimming Down Windows XP The Complete Guide 【 10章完整版 】

网上有一个汉化好的 压榨XP手册 是基于他的汉化版 现在我贴出的是英文原版你还可以向作者捐献15$以便获得一个自动优化XP的脚本原文&#xff1a;http://www.bold-fortune.com/forums/index.php?showforum13Thanks go out to Fred Langa for his acknowledgment of Slimming Do…

ps安装了可以打开但开始里面找不到_PS2018打开了钢笔压力但却没有压感的解决方法...

1.首先应确定是否安装数位板的驱动&#xff0c;如果驱动出现问题也可以试着重装一下。2.&#xff08;这里以Photoshop CC 2018为例&#xff09;接下来检查这个“始终对‘大小’使用‘压力’”按钮是否打开&#xff0c;如果是关闭的&#xff0c;试着打开。3.随后F5进入“画笔”选…

P3938 斐波那契

坑爹入口 我们想一下&#xff0c;第几个生的。那他的孩子就是排在新一波出生的第几个上的。 然后我们通过瞎试得到。10^12<斐波那契的第60项。就是说我们不用建图&#xff08;也建不下&#xff09;&#xff0c;每次最多60次暴力就可以了。 出题人真是个人才。 #include<c…

t检验的p值对照表_论文数据分析实战 | 如何对汇总数据进行t检验

在SPSS统计分析交流群中有学员在阅读论文的过程中看到下面的这张表格&#xff1a;这张表中记录了第16届世界男子篮球锦标赛中国队与前8名球队进攻指标比较的结果&#xff0c;其中这份表格并没有给出详细的P值&#xff0c;而只是告诉我们P值小于多少。在这种只有汇总数据&#x…

洛谷 P2389 电脑班的裁员 解题报告

题意&#xff1a; 给定一段长为N的序列&#xff0c;选取其中的至多M段使这些子段和最大。 当N1000时&#xff0c;我们可以采用动态规划解法 令\(dp[i][j][k]\)代表当前选至位置\(i\)处于第\(j\)段当前是否选取(1选0不选) 则转移为\(dp[i][j][0]max(dp[i-1][j][1],dp[i-1][j][0]…

浅谈显 ipqq 发展历程 【附显 ipqq原理】

声明&#xff0c;本文章未经过疯狂绅士与runjin的同意不得转载。浅谈IPQQ软件的技术发展轨迹疯狂绅士、RunJin摘要&#xff1a;本文先给出了IPQQ的界定&#xff0c;并介绍了不同历史时期具有里程碑意义的IPQQ。根据几个具有里程碑意义的IPQQ&#xff0c;作者简要的分析了其技术…

for命令不跳过空白行_Java程序员必备:查看日志常用的linux命令

iwenhou趁周末&#xff0c;复习一下鸟哥的linux私房菜&#xff0c;看了文件内容查阅部分&#xff0c;做个笔记&#xff0c;哈哈&#xff0c;希望对你有帮助哦。catcat : 由第一行开始显示文件所有内容参数说明cat [-AbEnTv] 参数&#xff1a; -A : 相当于-vET 的整合参数&#…

Java并发编程笔记之Semaphore信号量源码分析

JUC 中 Semaphore 的使用与原理分析&#xff0c;Semaphore 也是 Java 中的一个同步器&#xff0c;与 CountDownLatch 和 CycleBarrier 不同在于它内部的计数器是递增的&#xff0c;那么&#xff0c;Semaphore 的内部实现是怎样的呢&#xff1f; Semaphore 信号量也是Java 中一个…

三款常用IP发包工具介绍

AntPower 版权所有© 2003 技术文章http://www.antpower.org 第1 页共14 页AntPower&#xff0d;技术文章三款常用IP 发包工具介绍小蚁雄心成员郎国军著lgjqingdao.cngb.comURL修订版本版本时间修订人说明AntPower 版权所有© 2003 技术文章http://www.antpower.org 第…

python中读取指定的行和列_Python怎么获取excle中指定行和列的值?

https://www.cnblogs.com/xiazhenyu/ *** 学而思之、思而记之、记而习之 ***f"dict_file.txt" #定义文件名 def writefile(key,value): with open(f, "w") as file: # 只需要将之前的”w"改为“a"即可&#xff0c;代表追加内容&#xff0c;“w”…

设计模式--命令模式

实验16&#xff1a;命令模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解命令模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用命令模式解决实际问题。 [实验任务]&#xff1a;多次撤销和重复的命令模式 某系…

进入显示器工厂模式的方法 【95种品牌 维修珍藏资料】

常见CRT显示器的工厂模式进入方法 谁家的电视机坏了&#xff0c;图像的颜色乱了&#xff0c;肯定要请电视机维修人员来修。但是大家也许听说过&#xff0c;有时候维修人员到了家里&#xff0c;连螺丝刀都不拿&#xff0c;只是把遥控器“乱”按一通&#xff0c;电视机的故障就…

SecureCRT SSH 语法高亮

主要原因1.term类型不对,不支持彩色.在secureCRT上设置Options->SessionOptions ->Emulation,然后把Terminal类型改成xterm&#xff0c;并点中ANSI Color复选框。然后ls看看,发现文件名和目录已经是彩色了.但是可能vi打开某些文件依然不是彩色按:进入命令模式输入syntax …

跨站脚本专题 XSS

再分享一下我老师大神的人工智能教程吧。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;还带黄段子&#xff01;希望你也加入到我们人工智能的队伍中来&#xff01;https://blog.csdn.net/jiangjunshow

wxpython界面切换_Python图形界面开发—wxPython库的布局管理及页面切换

前言 wxPython是基于Python的跨平台GUI扩展库&#xff0c;对wxWidgets&#xff08; C 编写&#xff09;封装实现。GUI程序的开发中界面布局是很重要的一个部分&#xff0c;合理的页面布局能够给予用户良好使用体验。虽然在GUI的控件和窗口布局上可以使用坐标&#xff0c;但更多…

javah找不到类文件

这样即可&#xff0c;在src目录下寻找类&#xff0c;类要写全&#xff0c;即包名.类名 转载于:https://www.cnblogs.com/Java-Starter/p/9283830.html

水木周平戏说中国网络黑幽默

1&#xff1a; 百度贴吧都知道吧&#xff0c;有狗吧&#xff0c;牛吧&#xff0c;十一生肖都有。&#xff08;没错&#xff01;只有十一生肖&#xff01;&#xff09;唯独没有鸡吧。我属鸡&#xff0c;为此我很伤心。----听说过草木皆兵吗&#xff1f; 2: 这个世界上最远的距离…