Python的格式化输出:format函数用法

何为format

format是python2.6新增的一个格式化字符串的方法,相对与旧版的%它有很多优点

format的优点

1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型

2.单个参数可以多次输出,参数顺序可以不相同

3.填充方式十分灵活,对齐方式十分强大

4.官方推荐用的方式,%方式将会在后面的版本被淘汰

format的使用

基本 填充
(1)顺序填充
与%类似,通过{ }占位然后顺序填充

print("Hello,My name is {}, and i am from {}.".format("Yz","China"))

Output:
Hello,My name is Yz, and i am from China.

(2)下标填充
我们在{ }中填充逻辑顺序来对应之后format中的字符串

print("Hello,My name is {1}, and i am from {0}.".format("China","Yz"))

Output:
Hello,My name is Yz, and i am from China.

值得注意的是:在此种填充中,必须在每个{ }都标上序号,包括下面将会看到的在填充空白字段那里,如果使用了下标,则必须全部标上,即要标全标,要不标都不标,否则会报错
错误示范:

print("Hello,My name is {1}, and i am from {}.".format("China","Yz"))#第一个空标了,但第2个空未标

Output:
Traceback (most recent call last):
  File "E:/Pycharm Project/Crawler/Text.py", line 1, in <module>
    print("Hello,My name is {1}, and i am from {}.".format("China","Yz"))
ValueError: cannot switch from manual field specification to automatic field numbering
报错:无法从手动字段指定切换为自动字段编号

(3)关键字填充

print("Hello,My name is {Name}, and i am from {Country}.".format(Country = "China",Name = "Yz"))

Output:
Hello,My name is Yz, and i am from China.

还有诸如通过对象属性填充、通过参数填充等方法暂且不述。

进阶: 对齐与输出长度
在{ }中添加:及其他数字和字符来完成对齐与指定输出长度
:> 右对齐
:<左对齐
:^居中对齐
在<>^后面添加数字来指定输出长度
精度与类型f
精度常跟类型f一起使用。

In[1]: "{:.2f}".format(3.1415926)
Out[1]: '3.14'

其中.2表示长度为2的精度,f表示float类型。

print("Hello,My name is {:>7}, and i am from {:>7}.".format( "Yz", "China"))
print("Hello,My name is {:^7}, and i am from {:<7}.".format( "Yz", "China"))
Output:
Hello,My name is      Yz, and i am from   China.
Hello,My name is   Yz   , and i am from China  .

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充,也可以指定format后的对象来填充,如下面将会看到的解决中英文混输格式对齐的问题

print("Hello,My name is {:~>7}, and i am from {:!>7}.".format( "Yz", "China"))
print("Hello,My name is {:*^7}, and i am from {:3<7}.".format( "Yz", "China"))

Output:
Hello,My name is ~~~~~Yz, and i am from !!China.
Hello,My name is **Yz***, and i am from China33.

解决中英文混输格式对齐的问题

在爬虫实例:中国大学排名定向爬虫中

输出结果为
在这里插入图片描述
可以看到中间学校名称项没有对齐,原因是当中文字符串长度没有达到指定字符串长度时,默认会采用英文空格代替,而英文空格和中文空格长度不同,故导致中英文混输时不对齐了。:采用chr(12288)表示中文空格

def printUnivList(ulist, num):
    tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"#第二项指定用format中的序号为3的对象来占空白,因使用了下标,故都要添加下标
    print( tplt.format("排名","学校名称", "总分",chr(12288)))
    for i in range(num):
        u = ulist[i]
        print(tplt.format(u[0], u[1], u[2],chr(12288)))
Output:
    排名    	   学校名称   	    总分    
    1     	   清华大学   	  852.5   
    2     	   北京大学   	  746.7   
    3     	   浙江大学   	  649.2   
    4     	  上海交通大学  	  625.9   
    5     	   南京大学   	  566.1   
    6     	   复旦大学   	  556.7   
    7     	 中国科学技术大学 	  526.4   
    8     	  华中科技大学  	  497.7   
    9     	   武汉大学   	  488.0   
    10    	   中山大学   	  457.2   
    11    	  西安交通大学  	  452.5   
    12    	 哈尔滨工业大学  	  450.2   
    13    	 北京航空航天大学 	  445.1   
    14    	  北京师范大学  	  440.9   
    15    	   同济大学   	  439.0   
    16    	   四川大学   	  435.7   
    17    	   东南大学   	  432.7   
    18    	  中国人民大学  	  409.7   
    19    	   南开大学   	  402.1   
    20    	  北京理工大学  	  395.6 

查看关于format和旧版的%的区别

### 回答1: Python中的格式化输出是通过字符串的format()方法实现的。它可以将变量插入到字符串中,使输出更加灵活和易读。使用format()方法时,需要在字符串中使用花括号{}来表示要插入变量的位置,并在format()方法中传入相应的变量。例如: name = "小明" age = 18 print("我叫{},今年{}岁。".format(name, age)) 输出结果为:我叫小明,今年18岁。 在format()方法中,还可以使用格式化字符串来控制输出的格式。例如,可以使用{:d}来表示输出整数,{:f}来表示输出浮点数,{:s}来表示输出字符串等等。例如: num = 3.1415926 print("圆周率的值是{:.2f}。".format(num)) 输出结果为:圆周率的值是3.14。 除了使用花括号{}来表示要插入变量的位置外,还可以使用数字来表示要插入的变量的位置。例如: name = "小明" age = 18 print("我叫{},今年{1}岁。{}是个好名字。".format(name, age)) 输出结果为:我叫小明,今年18岁。小明是个好名字。 总之,Python中的格式化输出非常灵活和方便,可以根据需要随时调整输出的格式和内容。 ### 回答2: Python是一种强大的编程语言,其中一个强大的功能是利用字符串格式化输出数据,即format函数格式化输出是指将变量插入到字符串中的特定位置,结构化地显示数据,使之易于理解。 Python format() 函数的语法是:string.format()其中,string是要格式化的字符串,格式化参数可以是字符串、字典、元组或列表。格式化参数通常用花括号 {} 表示,可以指定参数的位置或者用名字来引用参数。 在进行格式化时,需要用一对大括号 {} 标示需要被替换的位置,格式化的参数列表依次填充大括号中的值,在大括号中可以指定参数的位置和名称,在大括号中添加“{数字}”来指定参数位置,数字表示参数在“format()”中的位置。 例如,“format("{} {} {}".format(a, b, c))”。 另外,括号中可以用名称来指定参数,名称需要在“format()”函数中指定。例如“format("{name}, {age}".format(name='张三', age=18))”。 format函数也可以用来限制输出的小数位数,例如“format("{:.2f}".format(3.1415926))”,将输出小数点后两位,结果为“3.14”。 除了支持字符串格式化之外,format函数还可以进行颜色渲染,使用方法为“\033[显示方式;字体色;背景色m”,例如红色字体输出为“\033[31m红色字体\033[0m”,其中的“\033[0m”表示恢复默认颜色。 总的来说,format函数Python中非常常用,可以用于字符串的格式化、颜色渲染等场景,使用灵活方便。需要掌握的技巧包括使用大括号{}指定参数位置或名称,指定小数位等等。 ### 回答3: Python语言是一款非常灵活的语言,能够对数据有效的进行处理,而格式化输出Python程序中非常重要的功能之一,而format就是Python语言中的字符串格式化,用于对字符串进行格式化输出Python中的format函数提供了一种非常灵活的方式来格式化字符串。通过使用大括号 {} 来指定要填充的值,同时还可以使用多个参数进行填充。 在编写Python程序时,可以使用format函数来指定输出的样式。 引号之间的文本就是格式字符串,可以包含相应的占位符,用来指定要输出的内容。占位符由大括号包裹,其中大括号中的内容可以包括一个格式化字段,格式化字段由一个或多个替换字段组成,替换字段可以用来指定不同的输出。 在format函数中,我们可以使用多种占位符来指定输出的格式,如 %d 表示输出一个整数, %f 表示输出一个小数,%s 表示输出一个字符串,%x 表示输出一个16进制数。此外,format函数还支持使用特定格式的占位符来对输出进行格式化显示,如 %06d 表示输出一个6位的数字不足补0。常用的格式化占位符如下: • %s:字符串格式。 • %d:整数格式。 • %f:浮点数格式。 • %o:八进制格式。 • %x:十六进制格式。 • %e:科学计数法格式(小写)。 • %E:科学计数法格式(大写)。 通过使用format函数,可以对Python程序中的数据进行格式化输出。使用format函数可以使输出更加美观,更加符合程序的需求。总的来说,format函数Python程序提供了一种强大的工具,使程序输出更为可读和可操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值