format()方法——格式化字符串

news2024/10/6 12:31:07

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

语法介绍

format()可以对数据进行格式化处理操作,语法如下:

format(value, format_spec)

format_spec为格式化解释。当参数format_spec为空时,等同于函数str(value)的方式。value为要转换的数据。format_spec可以设置非常复杂的格式转换参数,实现比较完备的数据格式处理模板。format_spec的编写方式如下形式:

format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]

format_spec格式控制符可以分为文字对齐、填充值、标志设置、格式化、类型转换、千位符(数字分组)等主要应用。细化分类说明如图1所示。

图1  format_spec格式控制符细化分类

主要参数说明:

1)fill(填充值):此处可以填写任何字符,通常与align、width一起使用,实现指定位数字符填充,通常格式如图2所示,填充效果及位置如图3所示。

图2  fill 填充格式

图3  fill 填充格式

通常用0、*、#等进行填充。如果不写填充值,则使用默认填充值,默认填充值为空格。代码如下:

print(format(81,'@<10'))              # 用@填充,宽度为10个空格

print(format(81,'@>10'))              # 用@填充,宽度为10个空格

输出结果为:

81@@@@@@@@

@@@@@@@@81

2)align(对齐方式):指在width(数字宽度)内输出时的对齐方式,分别使用<、>、^和=四个符号表示左对齐、右对齐、居中对齐和数字填充(只用于数字,在符号后进行补齐)。

3)width(数字宽度):指设定输出字符宽度,如果数据的实际位数比width指定宽度值大,则使用数据实际的长度。如果该值的实际位数小于指定宽度,则位数将设定的fill值填充或设定的0值填充,如果没有设置填充值,则用空格填充。

s = "PYTHON"

print(format(s,'10'))          # 没有标志符,如果是字符串则默认左对齐,不足宽度部分默认用空格填充

print(format(81.23,'10'))      # 没有标志符,如果是数字则默认右对齐,不足宽度部分默认用空格填充

print(format(s,'0>10'))        # 右对齐,不足指定宽度部分用0号填充

print(format(s,'>04'))         # 右对齐,因字符实际宽度大于指定宽度4,不用填充

print(format(s,'*>10'))        # 右对齐,不足部分用“*”号填充

print(format(s,'>010'))        # 右对齐,不足部分用0号填充

print(format(s,'>10'))         # 右对齐,默认用空格填充

print(format(s,'<10'))         # 左对齐,默认用空格填充

print(format(s,'<010'))        # 左对齐,不足部分用0号填充

print(format(s,'@^10'))        # 中间对齐,不足部分用“@”填充,宽度为10个空格

print(format(81.23,'0<10'))    # 左对齐,不足部分用0号填充

print(format(81.23,'@^10'))    # 右对齐,不足部分用“@”填充

print(format(81.23,'0>10'))    # 右对齐,不足部分用0号填充

print(format(-81.23,'0=10'))    # 右对齐,负号后面不足部分用0号填充,

输出结果为:

PYTHON   

     81.23

0000PYTHON

PYTHON

****PYTHON

0000PYTHON

    PYTHON

PYTHON   

PYTHON0000

@@PYTHON@@

81.2300000

@@81.23@@@

0000081.23

-000081.23

4)Precision(精度):精度由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。 Precision(精度)通常和Type(类型)配合起来使用。

5)Type(类型):表示输出字符串、整数和浮点数类型的格式规则,默认为字符型s。对于整数类型,输出格式包括7 种:

l  b: 输出整数的二进制方式;

l  c: 输出整数对应的 Unicode 字符;

l  d: 输出整数的十进制方式;

l  n: 输出整数的十进制方式;

l  o: 输出整数的八进制方式;

l  x: 输出整数的小写十六进制方式;

l  X: 输出整数的大写十六进制方式;

对于浮点数类型,输出格式包括7种:

l  e: 输出浮点数对应的小写字母 e 的指数形式;

l  E: 输出浮点数对应的大写字母 E 的指数形式;

l  f: 输出浮点数的浮点表示形式,默认保留6位小数

l  F: 输出浮点数的浮点表示形式,默认保留6位小数,无穷大转换成大写字母'INF'

l  g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)。

l  G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)。

l  %: 输出浮点数的百分形式。

    快用锦囊

锦囊1  格式化字符

格式化字符主要包括截取字符串,字符串对齐方式显示,填充字符串等几个方面,下面举例如下:

print(format('PYTHON','M^20.3')) # 截取3个字符,宽度为20居中,不足用‘M’填充

print(format("PYTHON",'10'))          # 默认居左显示,不足部分用‘ ’填充

print(format('mingrisoft.com','.3'))  # 截取3个字符,默认居左显示

print(format("PYTHON",'>10'))         # 居右显示,不足部分用‘ ’填充

s='mingrisoft.com'

print(format(s,'0>20'))    # 右对齐,不足指定宽度部分用0号填充

print(format(s,'>4'))      # 右对齐,因字符实际宽度大于指定宽度4,不用填充

print(format(s,'*>20'))    # 右对齐,不足指定宽度部分用*号填充

print(format(s,'>020'))    # 右对齐,指定0标志位填充

print(format(s,'>20'))     # 右对齐,没指定填充值,用默认值空格填充

print(format(s,'+^30'))    # 居中对齐,用+号填充不足部分

输出效果为:

MMMMMMMMPYTMMMMMMMMM

PYTHON   

min

    PYTHON

000000mingrisoft.com

mingrisoft.com

******mingrisoft.com

000000mingrisoft.com

      mingrisoft.com

++++++++mingrisoft.com++++++++

锦囊2  生成数据编号

利用format()函数实现数据编号。对数据进行编号,也是对字符串格式化操作的一种方式,使用format()方法可以对字符串进行格式化编号。只需设置填充字符(编号通常设置0),设置对齐方式时可以使用<、>和^符号表示左对齐、右对齐和居中对齐,对齐填充的符号在“宽度”范围内输出时填充,即可。对数字1进行3位编号,右对齐,需要设置format()方法的填充字符为0,对齐方式为右对齐,宽度为3。具体代码为:

print(format(1,'0>3'))   

输出结果为:

001

print(format(1,'>03'))

print(format(15,'0>5'))

输出结果为:

001

00015

要生成的编号通常比较复杂,如根据当天的日期建立编号,或者批量生成编号,或者将给定的批量数据中的数字转换成位数固定的编号,下面给出实现如上编号的实现方法:

import datetime

# 时间+编号

wx=datetime.datetime.now().date()

now=datetime.datetime.now()

print(str(wx),format(1,'0>3'))                  # 年月日 +3位编号

print(format(now,'%Y-%m-%d'),format(1,'0>3'))   # 年月日 +3位编号

print(format(now,'%Y%m%d'),'NO'+format(1,'0>3'))   # 年月日+NO+3位编号

print(format(now,'%d'),'NO'+format(1,'0>3'))   # 日期+NO+3位编号

print(format(now,'%H%M'),'NO'+format(1,'0>3'))   # 时钟+分 +NO+3位编号

输出为:

2019-07-05 001

2019-07-05 008

20190705 NO008

05 NO008

2115 NO008

# 批量生成编号

for i in range(1,6):

        print(format(i,'0>2'))

01

02

03

04

05

# 格式化列表编号

# 对已有非编号数字进行格式化编号

nba={1:'伦纳德',2:'哈登',3:'乔治'}

for key,value in nba.items():

    print(format(key,'0>3'),value)

结果输出为:

001 伦纳德

002 哈登

003 乔治

要实现嵌套编号,如A001-A005,B001-B005,C001-005的嵌套编号。代码如下:

for in range(65,69):

    for in range(1,6):

       data=chr(i)+format(j,'0>3')+' '

       print(data,end='')

    print()

结果输出如下:

 

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

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

相关文章

【代码工厂】简单地图生成

要求 &#xff08;图片来自codingame&#xff09; 代码 # 定义一个函数&#xff0c;用于生成模式 def generate_pattern(n, a, border_char): # 初始化一个空列表&#xff0c;用于存储生成地图pattern []# 最上面那一行的处理line n * border_charpattern.append(line)# 遍…

Zabbix如何帮助企业将监控数据转化为竞争优势

By Fernanda Moraes 在我们生活的高度互联世界中&#xff0c;变化以越来越快和激烈的速度发生。这影响了消费者的认知与行为&#xff0c;迫使零售商寻找更有效的方式来吸引客户。Linx 是 StoneCo 集团旗下的一家公司&#xff0c;也是零售技术专家&#xff0c;Linx了解这一点&am…

两张图片怎样拼在一起?将两张图片拼在一起的几种方法介绍

两张图片怎样拼在一起&#xff1f;拼接两张图片是一种常见的编辑技巧&#xff0c;能够将不同的视觉元素融合成一个整体&#xff0c;从而创造出更加生动和丰富的图像效果。无论是为了设计创意作品、制作社交媒体内容&#xff0c;还是简单地为个人相册增添趣味&#xff0c;掌握如…

一个人 三个月 干了二十万

相信很多人是被这个标题吸引进来的&#xff0c;但我并不是标题党&#xff0c;我也很讨厌标题党&#xff0c;这篇文章也不在乎流量&#xff0c;更多的是想记录下。 出来创业三个多月了&#xff0c;给大家汇报一下这段时间的业绩吧。一个人&#xff0c;三个多月&#xff0c;干了…

PlatformIO开发环境

PlatformIO是一个开源的生态系统&#xff0c;用于构建物联网应用&#xff0c;它支持多种微控制器&#xff08;MCU&#xff09;和硬件开发板&#xff0c;并且与各种IDE集成良好&#xff0c;如VSCode, Atom等&#xff0c;使得跨平台的固件开发变得更加简单和高效。 ### 平台介绍…

安卓速度下载v1.0.5/聚合短视频解析下载

功能特色 短视频下载与高级管理 – 支持短视频下载&#xff0c;为您提供一系列高级视频管理功能包括视频内容提取、智能防重复技术、视频体积压缩以及视频转换成GIF图片等&#xff1b; 磁-力链接下载升级 – 现支持磁力链接下载&#xff0c;实现边下载边播放的便捷体验&#x…

typescript学习回顾(四)

今天来分享下ts中的类&#xff0c;关于ts中的类的概念&#xff0c;面向对象的一种思想&#xff0c;以及类里面的一些属性成员&#xff0c;一些基础的用法&#xff0c;后面会有一个小练习。 类 基本概念 我的理解&#xff1a;类是编程语言中面向对象的一种思想&#xff0c;一…

flutter是app跨平台最优解吗?

哈喽&#xff0c;我是老刘 最近在知乎上看到这样一个问题 我们先来解释一下问题中碰到的几个现象的可能原因&#xff0c;然后聊聊跨平台的最优解问题 问题解释 1、跟手、丝滑问题 这个问题其实很多人是有误解的&#xff0c;觉得原生的就丝滑跟手 其实不是这样的 我在做Flut…

【内网安全】组策略同步-不出网隧道上线-TCP转ICMP

目录 域控-防火墙-组策略对象同步演示1、打开组策略管理&#xff0c;新建一个GPO连接 取名fhq(防火墙)2、编辑fhq并设置防火墙状态3、命令&#xff1a;gpupdate/force 更新策略4、域控主机新增规则5、域内用户主机更新规则 域控-防火墙-组策略不出网上线演示 ICMP协议上线&…

CentOS停更无忧,中国操作系统闯入后CentOS时代

国际开源服务器操作系统CentOS停更&#xff0c;引发了中国操作系统火线进化——开源龙蜥操作系统社区涌现出大量的技术创新&#xff0c;相关创新技术迅速转化为商业化产品。2024年6月&#xff0c;浪潮信息与龙蜥社区联合发布服务器操作系统云峦KeyarchOS V5.8 新版本&#xff0…

【秋招突围】2024届秋招笔试-科大笔试题-01-三语言题解(Java/Cpp/Python)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 &#x1f4d6…

入门网络安全工程师要学习哪些内容

大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。 网络安全工程师是一个概称&#xff0c;学习的东西很多&…

六、资产安全—信息分级资产管理与隐私保护(CISSP)

目录 1.信息分级 2.信息分级方法 3.责任的层级 4.资产管理 5.隐私数据管理角色 6.数据安全控制 7.数据保护方案 8.使用安全基线 六、资产安全—数据管理(CISSP): 五、身份与访问管理—身份管理和访问控制管理(CISSP): 1.信息分级 信息分级举列: 2.信息分级方…

ingress相关yaml文件报错且相关资源一切正常解决方法

今天在执行ingress相关文件的时候莫名其妙报错了&#xff0c;问了别人得知了这个方法 执行ingress相关文件报错 01.yaml是我自己创建关于ingress的yaml文件 报错信息 且相关资源一切正常 解决方法 kubectl get validatingwebhookconfigurations删除ingress-nginx-admissio…

商城积分系统的代码实现(上)-- 积分账户及收支记录

一、背景 上一系列文章&#xff0c;我们说了积分的数模设计及接口设计&#xff0c;接下里&#xff0c;我们将梳理一下具体的代码实现。 使用的语言的java&#xff0c;基本框架是spring-boot&#xff0c;持久化框架则是Jpa。 使用到的技术点有&#xff1a; 分布式锁&#xf…

AI大模型日报#0628:谷歌开源9B 27B版Gemma2、AI首次实时生成视频、讯飞星火4.0发布

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

抗击.michevol勒索病毒:保障数据安全的新策略

导言&#xff1a; 在今天高度互联的数字化环境中&#xff0c;数据安全面临着越来越复杂和普遍的威胁&#xff0c;勒索病毒如.michevol已成为了用户和企业普遍面临的风险。本文91数据恢复将探讨.michevol勒索病毒的特点、感染方式以及创新的防御策略&#xff0c;旨在帮助读者更…

九、(正点原子)Linux定时器

一、Linux中断简介 1、中断号 每个中断都有一个中断号&#xff0c;通过中断号即可区分不同的中断&#xff0c;有的资料也把中断号叫做中断线。在 Linux 内核中使用一个 int 变量表示中断号。在Linux中&#xff0c;我们可以使用已经编写好的API函数来申请中断号&#xff0c;定义…

快手主播李香周助力推动 K-beauty风潮谈背后成功秘诀

近年来&#xff0c;互联网的迅速发展和SNS社交媒体的普及&#xff0c;人们通过网络可以随时随地对自己感兴趣的自由畅谈和学习。而直播带货更是作为一种依托于互联网兴起的新型营销方式&#xff0c;凭借其价格优势和新颖的介绍方式为消费者带来了十分便捷的购物体验。 本期采访…

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…