前面跟大家分享过占位符%,最近发现了个更好用的格式化输出函数format,故做了个总结,下面将是对format函数的用法全解。

首先,format是一个字符串中的函数 表达式为 str.format(),采用了 {} 来代替占位符 %

format(value, format_spec='', /)

#这个为调用格式 value 表示格式化输入的值(参数),可以接受不限个参数

format函数的位置参数用法 “{0}”.format(value)

"The dog is {} years old,name {}".format(1,"DaiMo")#大括号里没有设置位置参数

#结果为:'The dog is 1 years old,name DaiMo'

#这是默认位置参数状态下的输出结果,第一个{}对应format函数的第一个参数,

#第二个{}对应着第二个参数,以此类推,一一对应。

"The dog is {0} years old,name {1}".format(1,"DaiMo")

#结果为:'The dog is 1 years old,name DaiMo'

"The dog is {1} years old,name {0}".format(1,"DaiMo")

#结果为:'The dog is DaiMo years old,name 1'

#通过位置的改变来让替换的值根据位置改变

format函数的字符填充用法 “{:}”.format()

说到这一点,可能稍微有点复杂,为了方便理解,在引入format函数的调用格式

'''

{ index : [ [fill] align] [sign] [+] [width] [.precision] [type] ] }

index 为位置参数,从0,1,……,开始

fill:指定空白处填充的字符,当填充字符为逗号(,)且作用于整数或浮点数时,

该整数(或浮点数)会以逗号分隔的形式输出(千分位输出),例如(1000000会输出 1,000,000)

align:指定数据的对齐方式(、^ 分别为左对齐、右对齐、居中,= 看下图)

sign:指定有无符号数(+、-、#、空格)

width:指定输出数据时所占的宽度。

precision:指定保留的小数位数。

type:指定输出数据的具体类型

'''

哈?还看不懂吗?那我以例子为基础讲细一点

print("The dog is {0:0>2} years old,name {1}".format(1,"DaiMo"))

#The dog is 01 years old,name DaiMo#

#大括号中第一个0表示位置参数,第二个0是在设定的字符长度下,空白处以0来填充。> 表示右对齐,2 表示字符长度为2.

"例子,{:#<5s}".format("hi")

#'例子,hi###'

"例子,{:0=8d}".format(5)

#'例子,00000005'

"例子,{:0^7d}".format(5)

#'例子,0005000'

"例子,{:0>7.2f}".format(5)

#'例子,0005.00'

以上例子大致表达清楚了空白填充符号,对齐方式,指定宽度,保留小数方式以及大致的输出数据类型(s为字符串,d为整型,f为浮点数)

以下再补充三个图,可以更直观的学习align、sign、type

align 指定数据的格式如下图:

sign参数图如下:

type类型格式化如下:

下面开始简单实践看看:

1.数学格式化

import math

"例子,{0:.2f},{0}".format(math.pi)#保留两位小数

#'例子,3.14,3.141592653589793'

"例子,{0:0>8.2f},{0}".format(math.pi)#保留两位小数,设置输出8个字符,向右对齐,空白字符以0填充

#'例子,00003.14,3.141592653589793'

"例子,{0:+.2f},{0}".format(math.pi)#保留两位小数,“+”不改变原来数值的正负值

#'例子,+3.14,3.141592653589793'

"例子,{0:+.2f},{0}".format(-math.pi)#保留两位小数,“+”不改变原来数值的正负值

#'例子,-3.14,-3.141592653589793'

"例子,{0:-.2f},{0}".format(math.pi)#保留两位小数,原来数值是正数不加任何正负号

#'例子,3.14,3.141592653589793'

"例子,{0:-.2f},{0}".format(-math.pi)#保留两位小数,原来数值是负数,输出负数

#'例子,-3.14,-3.141592653589793'

"例子,{0:.0f},{0}".format(math.pi)#输出正数

#'例子,3,3.141592653589793'

以上例子为浮点数的格式化输出,下面看看整型的格式化输出

"例子,{0:8>d},{0}".format(math.pi)#输出正数

猜猜以上结果

别慌,别慌,以上提示的是

值错误,类型为float的对象的未知格式代码为’d’

,简单来说就是format里面的数值类型对应整型的格式类型应该为整型。再来一次:

import math

"例子,{0:8>d},{0}".format(int(math.pi))#输出正数,字符长度为8

#'例子,3,3'

#这下子不就好了吗O(∩_∩)O哈哈~

"例子,{0:->8d},{0}".format(int(math.pi))#输出正数,字符长度为8,空白处补- (填充左边)

#'例子,-------3,3'

其他数字格式化输出

"例子,{0:,d},{0}".format(100000000)#千分位输出

#'例子,100,000,000,100000000'

"例子,{0:e},{0}".format(100000000)#科学计数法

#'例子,1.000000e+08,100000000'

"例子,{0:.1e},{0}".format(100000000)#科学计数法,保留一位小数

#'例子,1.0e+08,100000000'

"例子,{0:%},{0}".format(0.25)#百分比输出

#'例子,25.000000%,0.25'

"例子,{0:.2%},{0}".format(0.25)#百分比输出,保留两位小数

#'例子,25.00%,0.25'

2.进位制格式化输出(b、o、d、x)

"十进制数{0}的格式化输出,{0:b}".format(520)#二进制格式化输出

#'十进制数520的格式化输出,1000001000'

"十进制数{0}的八进制格式化输出,{0:o}".format(520)

#'十进制数520的八进制格式化输出,1010'

"十进制数{0}的十六进制格式化输出,{0:x}".format(520)

#'十进制数520的十六进制格式化输出,208'

3.字符串格式化输出(s)

"{0}的时候,我想看{1}".format("圣诞节","圣诞树")

#'圣诞节的时候,我想看圣诞树'

"例子:{0:s},my name is {1:*^4s}".format("Tom","张三")

#'例子:Tom,my name is *张三*'

"例子:{0:s},my name is {1:*<4s}".format("Tom","张三")

#'例子:Tom,my name is 张三**'

"例子:{0:s},my name is {1:*>4s}".format("Tom","张三")

#'例子:Tom,my name is **张三'

看到这是不是明白了许多,但是,format的功能不仅仅是这些,接着我们来看看format的其他功能

1.键值功能:

"大家好,我叫{name},今年{age}岁,请多多指教".format(name="小红",age="8")

#'大家好,我叫小红,今年8岁,请多多指教'

"大家好,我叫{name:*<3s},今年{age:0>2}岁,请多多指教".format(name="小红",age="8")

#'大家好,我叫小红*,今年08岁,请多多指教'

"大家好,我叫{name:*<3s},今年{age:0>2}岁,请多多指教。谢谢{name}的自我介绍".format(name="小红",age="8")

#'大家好,我叫小红*,今年08岁,请多多指教。谢谢小红的自我介绍'

2.列表填充功能

list1=["陈奕迅","莫文蔚","Twins","五月天"]

string="我最喜欢的男歌手是{0[0]},最喜欢的女歌手是{0[1]},最喜欢的乐队是{0[3]}".format(list1)

print(string)

#我最喜欢的男歌手是陈奕迅,最喜欢的女歌手是莫文蔚,最喜欢的乐队是五月天

list1=["陈奕迅","莫文蔚"]

list2=["Twins","五月天"]

string="我最喜欢的歌手是{0[0]},最喜欢的乐队是{1[1]}".format(list1,list2)

print(string)

#我最喜欢的歌手是陈奕迅,最喜欢的乐队是五月天

3.字典填充功能

dict01={"name1":"Tom","name2":"Tony","name3":"Jane"}

string="My name is {[name2]}".format(dict01)

print(string)

#My name is Tony

dict01={"name1":"Tom","name2":"Tony","name3":"Jane"}

dict02={"age1":10,"age2":12,"age3":8}

string="My name is {0[name2]},age is{1[age1]}".format(dict01,dict02)

print(string)

#My name is Tony,age is10

注意:format的大括号内容填写顺序:位置参数(index),冒号(:),填充字符(0、*、#、等等),对齐方式(、^、=),符号(+、-、#、空格)一般针对数字进位制,字符长度(宽度),小数(.),类型(s、d、f、b、o、x、e、%、,、……)

学到这,我得先歇歇了,format的功能其实还不止这些,有需要的请继续使用搜索引擎哈!

python将三位数分离(format格式)_Python格式函数,python,之,format相关推荐

  1. python三位数水仙花数计算_python使用循环打印所有三位数水仙花数的实例

    首先水仙花数是什么? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿 ...

  2. python判断三位数水仙花数_python 判断一个三位数是不是水仙花数

    原博文 2020-03-25 19:03 − 还有别的方法,这里只写了一种,可能复杂了点 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, ```pytho ...

  3. python三位数组合有哪些_python组合无重复三位数的实例

    # -*- coding: utf-8 -*- # 简述:这里有四个数字,分别是:1.2.3.4 #提问:能组成多少个互不相同且无重复数字的三位数?各是多少? def f(n): list=[] co ...

  4. python 求3位数的水仙花数_python 求3到8位数的水仙花数Pycharm实现

    #-*- coding: utf-8-*- import time import math #获取3位数的水仙花数 start1 = time.time() start = time.time() n ...

  5. python求三个数的最大值编程_python 判断三个数字中的最大值实例代码

    python 判断三个数字中的最大值,具体代码如下所示: #判断三个数中最大值 n1= int(input('please enter the firest number:')) n2 = int(i ...

  6. 用python输入三个整数输出最大值_python 判断三个数字中的最大值实例代码

    python 判断三个数字中的最大值,具体代码如下所示: #判断三个数中最大值 n1= int(input('please enter the firest number:')) n2 = int(i ...

  7. python实现三种以上判断条件_Python条件判断(if)

    Python条件判断(if) 一.基本介绍 1.Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- 需要注意的是,Python没有像其他大多数语言一样使用 ...

  8. pythonindex函数的使用格式_Python之函数

    为什么要使用函数? 在说明原因之前,我们先来看一个需求,比如你的boss需要你写实现以下的打印输出,并插入在某段程序代码的20个位置都条件此打印输出: ******************** *** ...

  9. 关于Python的三个谎言,别再盲目学Python了

    Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚,Python固然简单好上手,但事实上Python也不是那么容易学习的.如果不采取正确的学习方式 ...

最新文章

  1. 使用sn.exe为程序集签名
  2. Java 之 IO 异常的处理【了解】
  3. bzoj 4942: [Noi2017]整数
  4. MPL,MIL和MCL
  5. Will it finally: 关于 try/catch 的一些细节
  6. 此地址使用了一个通常用于网络浏览以外的端口。出于安全原因,Firefox 取消了该请求...
  7. Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
  8. 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...
  9. 华为云全球首发企业级AI应用开发套件ModelArts Pro,加速行业AI落地
  10. 华为8lite支持云闪付吗_2K/120Hz屏?华为P40Pro尊享版价格曝光 | 一加8曝4.15发布
  11. Eclipse 2021-6安装教程及其安装包
  12. Spotfire 对条形图中分组后的值排序
  13. 《统计数据会说谎》阅读总结
  14. 【STM32F407开发板用户手册】第2章 STM32F407的开发环境搭建
  15. 你相信吗?这些照片其实并没有被PS_-Chaz-_新浪博客
  16. 2018腾讯实习生前端面试
  17. Makefile中wildcard函数的应用理解
  18. librosa 安装
  19. Android studio 入门第一个APP
  20. Linux 虚拟文件系统四大对象:超级块、inode、dentry、file之间关系

热门文章

  1. [微信聊天]--一个人有多成熟,就看他如何聊微信
  2. 北京清能互联公司(广州分公司)前端实习总结
  3. 如何解除任务管理器被禁用
  4. 网络安全知识竞赛题库及答案(多选题1-100题)
  5. HTTP(9):新增功能协议
  6. 百度地图点击marker换图标的两种方式
  7. 精益创业实战 - 第14章 评估产品和市场的匹配程度
  8. PE文件资源解析(十一)对话框资源的解析
  9. 如何获取到javasript链接的网址
  10. 【深度学习模型】讲讲横扫nlp任务的BERT模型