python将三位数分离(format格式)_Python格式函数,python,之,format
前面跟大家分享过占位符%,最近发现了个更好用的格式化输出函数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相关推荐
- python三位数水仙花数计算_python使用循环打印所有三位数水仙花数的实例
首先水仙花数是什么? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿 ...
- python判断三位数水仙花数_python 判断一个三位数是不是水仙花数
原博文 2020-03-25 19:03 − 还有别的方法,这里只写了一种,可能复杂了点 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, ```pytho ...
- python三位数组合有哪些_python组合无重复三位数的实例
# -*- coding: utf-8 -*- # 简述:这里有四个数字,分别是:1.2.3.4 #提问:能组成多少个互不相同且无重复数字的三位数?各是多少? def f(n): list=[] co ...
- python 求3位数的水仙花数_python 求3到8位数的水仙花数Pycharm实现
#-*- coding: utf-8-*- import time import math #获取3位数的水仙花数 start1 = time.time() start = time.time() n ...
- python求三个数的最大值编程_python 判断三个数字中的最大值实例代码
python 判断三个数字中的最大值,具体代码如下所示: #判断三个数中最大值 n1= int(input('please enter the firest number:')) n2 = int(i ...
- 用python输入三个整数输出最大值_python 判断三个数字中的最大值实例代码
python 判断三个数字中的最大值,具体代码如下所示: #判断三个数中最大值 n1= int(input('please enter the firest number:')) n2 = int(i ...
- python实现三种以上判断条件_Python条件判断(if)
Python条件判断(if) 一.基本介绍 1.Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- 需要注意的是,Python没有像其他大多数语言一样使用 ...
- pythonindex函数的使用格式_Python之函数
为什么要使用函数? 在说明原因之前,我们先来看一个需求,比如你的boss需要你写实现以下的打印输出,并插入在某段程序代码的20个位置都条件此打印输出: ******************** *** ...
- 关于Python的三个谎言,别再盲目学Python了
Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚,Python固然简单好上手,但事实上Python也不是那么容易学习的.如果不采取正确的学习方式 ...
最新文章
- 使用sn.exe为程序集签名
- Java 之 IO 异常的处理【了解】
- bzoj 4942: [Noi2017]整数
- MPL,MIL和MCL
- Will it finally: 关于 try/catch 的一些细节
- 此地址使用了一个通常用于网络浏览以外的端口。出于安全原因,Firefox 取消了该请求...
- Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
- 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...
- 华为云全球首发企业级AI应用开发套件ModelArts Pro,加速行业AI落地
- 华为8lite支持云闪付吗_2K/120Hz屏?华为P40Pro尊享版价格曝光 | 一加8曝4.15发布
- Eclipse 2021-6安装教程及其安装包
- Spotfire 对条形图中分组后的值排序
- 《统计数据会说谎》阅读总结
- 【STM32F407开发板用户手册】第2章 STM32F407的开发环境搭建
- 你相信吗?这些照片其实并没有被PS_-Chaz-_新浪博客
- 2018腾讯实习生前端面试
- Makefile中wildcard函数的应用理解
- librosa 安装
- Android studio 入门第一个APP
- Linux 虚拟文件系统四大对象:超级块、inode、dentry、file之间关系