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

自学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()

结果输出如下:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI视频教程下载-数据分析中的提示工程:Python、Pandas、ChatGPT

Prompt Engineering for Data Analysis Python, Pandas, ChatGPT ChatGPT与Python&#xff1a;无需编程。借助ChatGPT、Python、Pandas及提示工程进行数据分析与数据可视化 "利用Python、Pandas和ChatGPT进行数据分析的提示工程"是一门开创性的课程&#xff0c;它通…

来聊聊nacos

先关注下下方公众号呗&#xff1a; 第1部分&#xff1a;引言 微服务的挑战 尽管微服务架构带来了许多好处&#xff0c;如敏捷性、可扩展性和容错性&#xff0c;但它也带来了一些挑战&#xff0c;特别是在服务发现、配置管理、服务间通信和运维管理方面。这些挑战需要有效的解…

【小程序静态页面】猜拳游戏大转盘积分游戏小程序前端模板源码

猜拳游戏大转盘积分游戏小程序前端模板源码&#xff0c; 一共五个静态页面&#xff0c;首页、任务列表、大转盘和猜拳等五个页面。 主要是通过做任务来获取积分&#xff0c;积分可以兑换商品&#xff0c;也可用来玩游戏&#xff1b;通过玩游戏既可能获取奖品或积分也可能会消…

Linux libreoffice安装 word转pdf 中文乱码(缺少字体解决)

libreoffice 的安装 yum install -y libreoffice版本验证 libreoffice --version参考文章 word转pdf 命令 转换命令 要将Word文档(.doc或.docx)转换为PDF格式&#xff0c;可以使用以下命令&#xff1a; libreoffice --headless --convert-to pdf your_word_document.docx指…

MySQL84 -- ERROR 1524 (HY000): Plugin ‘msql_native_password‘ is not loaded.

【问题描述】 MySQL 8.4版本&#xff0c;配置用户使用mysql_native_password认证插件验证用户身份&#xff0c;报错&#xff1a; 【解决方法】&#xff08;Windows, MySQL 8.4) 1、修改MySQL配置文件my.ini&#xff0c;在[mysqld]段添加mysql_native_passwordON。 2、管理员…

vue3中获取Excel和csv文件中的内容

1.效果 2.安装 npm install xlsxyarn add xlsx 3.引入使用 <el-upload ref"uploadRef" :on-change"changeFile" :show-file-list"false" class"mr10" accept".csv, .xlsx, .xls"action"#" :auto-upload&quo…

center()方法——字符串居中填充

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 字符串对象的center()方法用于将字符串填充至指定长度&#xff0c;并将原字符串居中输出。center()方法的语法格式如下&#xff1a; str.…

php 通过vendor文件 生成还原最新的composer.json

起因&#xff1a;因为历史原因&#xff0c;在本项目中composer.json基本算废了&#xff0c;没法直接使用composer管理扩展&#xff0c;今天尝试修复一下composer.json。 历史文件&#xff0c;可以看出来已经很久没有维护了&#xff0c;我们主要是恢复require的信息 {"na…

Kubernetes 之GVR与GVK详解

本文尝试从GVR与GVK对比、常见的GVR和GVK操作、GVK设计精髓、CRD工作流程等方面对GVK和GVR进行详细分析。希望对您有用&#xff01; 一、Kubernetes 之GVR与GVK对比 在 Kubernetes 中&#xff0c;GVR 和 GVK 是两个重要的概念&#xff0c;用于唯一标识和操作不同的资源类型和…

香港服务器托管对外贸行业必要性和优势

在当今全球化的经济环境下&#xff0c;外贸企业面临着前所未有的机遇与挑战。其中&#xff0c;服务器托管的选择对于外贸企业的运营效率和市场拓展具有举足轻重的作用。香港服务器&#xff0c;凭借其独特的地理位置、优质的网络环境和卓越的服务性能&#xff0c;一直是外贸企业…

基于改进天鹰优化算法(IAO)优化BP神经网络数据分类预测(IAO-BP)

改进天鹰优化算法(IAO)见&#xff1a;【智能优化算法】改进的AO算法(IAO)-CSDN博客 BP神经网络的数据分类预测&#xff1a;基于BP神经网络的数据分类预测-CSDN博客 代码原理 基于改进天鹰优化算法&#xff08;IAO&#xff09;优化BP神经网络数据分类预测&#xff08;IAO-BP&…

线性代数知识点搜刮

求你别考太细... 目录 异乘变零定理 行列式转置 值不变 重要关系 中间相等&#xff0c;取两头 特征值公式 向量正交 点积为0 拉普拉斯定理 矩阵的秩 特征值和特征向量 |A|特征值的乘积 & tr(A)特征值的和 要记要背 增广矩阵 异乘变零定理 某行&#xff08;…

Linux命令 wc(word count)-l(lines)用于统计文件中的行数。

文章目录 1、wc -l2、实战3、wc --help 1、wc -l 在命令 wc -l 中&#xff0c;-l 的英文全称是 lines。这个选项用于指定 wc&#xff08;word count&#xff0c;单词计数&#xff09;命令来统计文件的行数。 例如&#xff0c;当你运行 wc -l load_user_100w_sort.sql 时&…

探索CSS布局:创建一个居中的内嵌方块示例

在网页设计中&#xff0c;布局是至关重要的部分。CSS提供了多种方式来实现元素的布局&#xff0c;包括居中对齐、外边距、内边距等。本文将通过一个简单的示例&#xff0c;介绍如何使用CSS来创建一个居中的内嵌方块&#xff0c;并探讨其背后的布局原理。 HTML 结构 首先&…

BLACKBOX.AI:解锁开发新纪元,加速编程学习的AI神器!

文章目录 &#x1f4af;BLACKBOX.AI 官网&#x1f341;1 BLACKBOX.AI 工具使用教程&#x1f341;2 BLACKBOX.AI工具使用界面介绍&#x1f341;3 Chat(聊天)功能&#x1f341;4 Explore (探索)功能&#x1f48e;4.1 Terminal(终端)功能&#x1f48e;4.2 Discover(发现)功能&…

SpringBoot——整合Shiro,实现安全认证和权限管理功能

目录 Shiro 项目总结 新建一个SpringBoot项目 pom.xml application.properties&#xff08;配置文件&#xff09; User&#xff08;实体类&#xff09; UserMapper&#xff08;数据访问层接口&#xff09; UserMapper.xml&#xff08;数据库映射文件&#xff09; User…

第1章 物联网模式简介---物联网概述

物联网模式简介 物联网&#xff08;IoT&#xff09;在最近几年获得了巨大的吸引力&#xff0c;该领域在未来几年将呈指数级增长。这一增长将跨越所有主要领域/垂直行业&#xff0c;包括消费者、家庭、制造业、健康、旅游和运输。这本书将为那些想了解基本物联网模式以及如何混…

【2024大语言模型必知】做RAG时为什么要使用滑动窗口?句子窗口检索(Sentence Window Retrieval)是什么?

目录 1. 传统的向量检索方法&#xff0c;使用整个文档检索&#xff0c;为什么不行&#xff1f; 2.句子滑动窗口检索&#xff08;Sentence Window Retrieval&#xff09;工作原理 3.句子滑动窗口检索&#xff08;Sentence Window Retrieval&#xff09;的优点 1. 传统的向量检…

我在高职教STM32——时钟系统与延时控制(1)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

十步学习法,赋能程序员

大家好&#xff0c;我是码农先森。 引言 最近看了《软技能&#xff1a;代码之外的生存指南》这本书&#xff0c;对其中的 “十步学习法”。 有一些感触&#xff0c;所以将其中的内容记录并总结了下来&#xff0c;分享给大家。 程序员在学习成长的过程中&#xff0c;除了关注…