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,一经查实,立即删除!

相关文章

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

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

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

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

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 中一个…

设计模式--命令模式

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

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

python卸载opencv_20.Windows python,opencv的安装与卸载

本机Windows7系统&#xff0c;之前安装了Python3.5的版本&#xff0c;后来因为要装opencv&#xff0c;而opencv只支持Python2.7的版本&#xff0c;所以需要将Python3.5进行卸载。在控制面板-卸载程序&#xff0c;将Python卸载后删除其注册表等残留文件 下载Python2.7&#xff0…

LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】

系统引导过程及硬盘分区结构论述作者&#xff1a; zhy2111314来自&#xff1a; LinuxSir.Org ouc.edu.cn摘要&#xff1a; 本文是理论性文档&#xff0c;主要讲述系统引导过程以及硬盘的物理结构&#xff1b;正文一、系统引导过程简介系统引导过程主要由以下几个步骤组成(以硬盘…

破解WEP密钥过程全解(上)

WLAN技术出现之后&#xff0c;“安全”就成为始终伴随在“无线”这个词身边的影子&#xff0c;针对无线网络技术中涉及的安全认证加密协议的攻击与破解就层出不穷。现在&#xff0c;因特网上可能有数以百计&#xff0c;甚至以千计的文章介绍关于怎么攻击与破解WEP&#xff0c;但…

bfc是什么_一次弄懂css的BFC

前言BFC在css的学习中是重要的但不易理解的概念&#xff0c;BFC也牵扯了很多其他问题&#xff0c;如浮动、定位、盒模型等&#xff0c;因此弄懂BFC是很有必要的。本文对BFC进行总结&#xff0c;希望对你有所帮助。BFC是什么&#xff1f;先看看MDN的定义&#xff1a;块格式化上下…

ES6模块的import和export用法总结

ES6之前已经出现了js模块加载的方案&#xff0c;最主要的是CommonJS和AMD规范。commonjs主要应用于服务器&#xff0c;实现同步加载&#xff0c;如nodejs。AMD规范应用于浏览器&#xff0c;如requirejs&#xff0c;为异步加载。同时还有CMD规范&#xff0c;为同步加载方案如sea…

windows网关详解 【了解网关的重要性,增加网络性能】【FreeXploiT综合文】

理解Windows中的路由表和默认网关 每一个Windows系统中都具有IP路由表&#xff0c;它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。路由表是TCP/IP通信的基础&#xff0c;本地计算机上的任何TCP/IP通信都受到路由表的控制。 理解路由表 你可以运行 route …

隐藏该监视器无法显示模式_【春星开讲 | 9137】达芬奇4K调色监看的好伙伴——明基PD2720U专业显示器...

近几年来&#xff0c;4K制作成为影视行业的一个热词&#xff0c;从标清到高清&#xff0c;从高清到超高清&#xff0c;从2K到4K&#xff0c;影视前期拍摄设备和后期制作流程都在发生着剧烈的变革。单就我所从事的影视调色行业而言&#xff0c;4K调色也是很多调色师梦寐以求但也…

了解WWW服务与HTTP协议 【入门与应用】

轻松认识HTTP协议的概念和工作原理 当我们想浏览一个网站的时候&#xff0c;只要在浏览器的地址栏里输入网站的地址就可以了&#xff0c;例如&#xff1a;www.microsoft.com&#xff0c;但是在浏览器的地址栏里面出现的却是&#xff1a;http://www.microsoft.com&#xff0c;你…

flex 下对齐_flex布局

基本概念在父元素上启用display:flex 开启弹性布局&#xff0c;子元素叫flex item&#xff0c;父元素叫flex container父元素的属性flex-dirention属性有4个值.box { flex-direction: row | row-reverse | column | column-reverse; }row&#xff08;默认值&#xff09;&#x…

BOOT INI专辑

Windows 可能在 Boot.ini 文件中使用 Signature() 语法概要在安装 Windows 之后&#xff0c;您可能注意到在 Boot.ini 文件中高级 RISC 计算 (ARC) 路径项以"signature()"语法开头。例如&#xff1a; signature(8b467c12)disk(1)rdisk(0)partition(2)/winnt"des…

指针强化

铁律1&#xff1a;指针是一种数据类型 1&#xff09;指针也是一种变量&#xff0c;占有内存空间&#xff0c;用来保存内存地址 测试指针变量占有内存空间大小 int a 10;char *p1 100; //分配4个字节的内存char ****p2 100;int *p3 NULL;p3 &a;*p3 20; //间接的修改a…

windows游戏编程_苹果的Mac和微软的Windows该如何选择?

WORK HARD FOR A BETTER LIFEMac&Windows如何选择&#xff1f;///教你认识Mac与Windows的区别正确选择最适合自己的电脑苹果Mac系列电脑一直属于小众化产品&#xff0c;使用的人较少。有些朋友给使用Macbook系列电脑的朋友打上“装X”、“华而不实”等标签。而使用MacBook的…

子网掩码相关教学 子网掩码快速算法 沉睡不醒blog

如果你希望每个子网中只有5个ip地址可以给机器用&#xff0c;那么你就最少需要准备给每个子网7个ip地址&#xff0c;因为需要加上两头的不可用的网络和广播ip&#xff0c;所以你需要选比7多的最近的那位&#xff0c;也就是8&#xff0c;就是说选每个子网8个ip。好&#xff0c;到…