提到Python中的格式化输出方法,一般来说有以下两种方式:

1)%

格式说明由%和格式字符组成,如%f,%s,%d,它的作用是将数据按照指定的格式输出。格式说明是由“%”字符开始的。

 #1.输出字符串%s
print('my name is %s' % ('xiaoming')) #2.整型输出%d
print('My sister is %s, Her age is %d,'%('Lina',18)) #3.输出浮点数
print('Her height is %f m' % (1.6500)) #4.保留2位小数
print('His height is %.2f m' % (1.6500)) #5.指定占位符宽度
print('name:%10s age:%10d height:%5.2f' % ('Lina',18,1.6500)) #6.指定占位符宽度(左对齐)
print('name:%-10s age:%-10d height:%-5.2f' % ('Lina',18,1.6500)) #7.字符串截取
print('%.5s' % ('hello word'))#截取前5个字符 '''
运行结果
my name is xiaoming
My sister is Lina, Her age is 18,
Her height is 1.650000 m
His height is 1.65 m
name: Lina age: 18 height: 1.65
name:Lina age:18 height:1.65
hello '''

2) format

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

基本用法

 print('{} {}'.format('hello', 'world'))  # 最基本的

 print('{0} {1}'.format('hello', 'world'))  # 通过位置参数

 print('{0} {1} {0}'.format('hello', 'world'))  # 单个参数多次输出

 """输出结果
hello world
hello world
hello world hello
"""

关键词定位

 # 通过关键词参数
print('我的名字是{name},我今年{age}岁了。'.format(name='Linda', age='')) # 与位置参数一样,单个参数也能多次输出
print('{name}说:"我的名字是{name},我今年{age}岁了。"'.format(name='linda', age='')) """输出结果
我的名字是linda,我今年18岁了。
linda说:"我的名字是Linda,我今年18岁了。"
"""

可变参数

可传入list、dic类型

 # 传入list
data = ['hello', 'world']
print('{0} {1}'.format(*data)) # 传入dict
data = {'name': '小明', 'age': 12}
print('我的名字是{name},我今年{age}岁了。'.format(**data)) # 混用
data_1 = ['hello', 'world']
data_2 = {'name': '小明', 'age': 12}
print('{0} {1} 我的名字是{name},我今年{age}岁了,{0}!'.format(*data_1, **data_2)) """输出结果
hello world
我的名字是小明,我今年12岁了。
hello world 我的名字是小明,我今年12岁了,hello!
"""

固定宽度

format()可以指定输出宽度为多少,当字符串长度少于设定值的时候,默认用空格填充:

 data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]
# 固定宽度输出
for item in data:
print('{:10}{:40}'.format(item['name'], item['college'])) """输出结果
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology

当然除了空格,我们也可以选择其他字符来填充,譬如我想打印一条分割线,便可以选择通过-来填充:

 data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}] # 固定宽度输出
for item in data:
# 每输出一条记录之前打印一条分割线
# 选择用其他字符来填充时需要指定对齐方式
print('{:-^60}'.format('我是分割线'))
print('{:10}{:40}'.format(item['name'], item['college'])) """输出结果
---------------------------我是分割线----------------------------
Mary Tsinghua University
---------------------------我是分割线----------------------------
Micheal Harvard University
---------------------------我是分割线----------------------------
James Massachusetts Institute of Technology
"""

对齐方式

format()支持左对齐,右对齐,居中,分别对应<>^,具体怎么使用我们看实例:

 data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}] print('{:-^50}'.format('居中'))
for item in data:
print('{:^10}{:^40}'.format(item['name'], item['college'])) print('{:-^50}'.format('左对齐'))
for item in data:
print('{:<10}{:<40}'.format(item['name'], item['college'])) print('{:-^50}'.format('右对齐'))
for item in data:
print('{:>10}{:>40}'.format(item['name'], item['college'])) """输出结果
------------------------居中------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
-----------------------左对齐------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
-----------------------右对齐------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
"""

数字格式化

常用的示例如下:

 # 取小数点后两位
num = 3.1415926
print('小数点后两位:{:.2f}'.format(num)) # 带+/-输出
num = -3.1415926
print('带正/负符号:{:+.2f}'.format(num)) # 转为百分比
num = 0.34534
print('百分比:{:.2%}'.format(num)) # 科学计数法
num = 12305800000
print('科学计数法:{:.2e}'.format(num)) # ,分隔
num = 12305800000
print('","分隔:{:,}'.format(num)) # 转为二进制
num = 15
print('二进制:{:b}'.format(num)) # 十六进制
num = 15
print('十六进制:{:x}'.format(num)) # 八进制
num = 15
print('八进制:{:o}'.format(num)) """输出结果
小数点后两位:3.14
带正/负符号:-3.14
百分比:34.53%
科学计数法:1.23e+10
","分隔:12,305,800,000
二进制:1111
十六进制:f
八进制:17
"""

可以设置参数

 print("网站名:{name}, 地址 {url}".format(name="博客园", url="https://home.cnblogs.com/u/yaner2018/"))

 # 通过字典设置参数
site = {"name": "博客园", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数
my_list = ['博客园', 'https://home.cnblogs.com/u/yaner2018/']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的 '''
网站名:博客园, 地址 https://home.cnblogs.com/u/yaner2018/
网站名:博客园, 地址 https://home.cnblogs.com/u/yaner2018/
网站名:博客园, 地址 https://home.cnblogs.com/u/yaner2018/
'''

可以向 str.format() 传入对象:

 class demo(object):
def __init__(self, value):
self.value = value
my_value = demo(6)
print('value 为: {0.value}'.format(my_value)) # "0" 是可选的

-----------------------------------------总结-----------------------------------------------------

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

------------------------------------------------------------------------------------------------

此外我们可以使用大括号 {} 来转义大括号,如下实例:

print ("{} 对应的位置是 {{0}}".format("runoob"))

#输出:

#runoob 对应的位置是 {0}

python 格式化输出(% VS format)的更多相关文章

  1. python格式化输出之format用法

    format用法 相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’ 使用方法由两种:b ...

  2. python格式化输出(% format用法)

    %基本用法: 十进制输出:print('%d' % 6)    6也可以换成其它的数字变量 八进制输出:print('%o' % 6)  6也可以换成其它的数字变量 字符串输出:print('%s' ...

  3. Python 3.x 格式化输出字符串 % & format 笔记

    Python 3.x 格式化输出字符串 % & format 笔记 python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记 %c字 ...

  4. python格式化输出【转】

    今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结. 一.格式化输出 1.整数的输出 直接使用'%d'代替可输入十进制数字: >>> ...

  5. Python 格式化输出 —— 小数转化为百分数

    比如将 0.1234 转化为 12.34% 的形式: rate = .1234 print('%.2f%%' % (rate * 100)) 第一个百分号和 .2f 相连,表示浮点数类型保留小数点后两 ...

  6. Python格式化输出的三种方式

    Python格式化输出的三种方式 一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age ...

  7. 格式化输出io:format的奇技淫巧

    格式化输出io:format是我接触Erlang使用的第一个库函数(io:format("Hello World")),随着学习的深入,它也是我debug优先选择最简单直接的工具. ...

  8. python格式化输出及大量案例

    python格式化输出符号及大量案例 1.格式化输出符号 python格式化输出符号 格式化符号 含义 %c 转化成字符 %r 优先使用repr()函数进行字符串转化 %s 转换成字符串,优先使用st ...

  9. Python格式化输出——format用法示例

    format OR % 提到Python中的格式化输出方法,一般来说有以下两种方式: print('hello %s' % 'world') # hello world print('hello {} ...

随机推荐

  1. Onedrive File Open Problem

    在用Onenote 2016写笔记时,同步到Onedrive后就变成了Internet快捷方式,而且直接打开时会出现提示: 原因 用Onenote客户端在Onedrive上创建的笔记本是一种特殊文件, ...

  2. 分享一批国内常用的tracker地址

    本期先分享一批国内能用地址,下一期我会出一期取代迅雷的下载的工具教程. udp://p4p.arenabg.com:1337/announce udp://tracker.tiny-vps.com:6 ...

  3. CodeForces - 262B

    Roma works in a company that sells TVs. Now he has to prepare a report for the last year. Roma has g ...

  4. Java中常用的获取从当前月开始的前第i个月、取结束时间与开始时间相差多少个月份等的方法

    @RunWith(SpringRunner.class) @SpringBootTest public class DateTest { @Test public void test(){ DateF ...

  5. 使用Python+TensorFlow2构建基于卷积神经网络(CNN)的ECG心电信号识别分类(二)

    心律失常数据库 目前,国际上公认的标准数据库包含四个,分别为美国麻省理工学院提供的MIT-BIH(Massachusetts Institute of Technology-Beth Israel H ...

  6. 软件——IDEA 超实用使用技巧分享

    前言 工欲善其事 ​必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优秀 ...

  7. 2-JVM内存模型

    内存模型 方法区 JDK1.7 之前包含1.7 将方法区称为 Perm Space 永久代 JDK1.8之后包含1.8 将方法区称为 MetaSpace 元空间. 堆(分配内存会大一些) 分配对象.n ...

  8. 一篇博客带你轻松应对java面试中的多线程与高并发

    1. Java线程的创建方式 (1)继承thread类 thread类本质是实现了runnable接口的一个实例,代表线程的一个实例.启动线程的方式start方法.start是一个本地方法,执行后,执 ...

  9. Offset等一些类似属性的使用

    1.offset系列 // offset 系列 var father = document.querySelector('.father'); var son = document.querySele ...

  10. 更加灵活的参数校验,Spring-boot自定义参数校验注解

    上文我们讨论了如何使用@Min.@Max等注解进行参数校验,主要是针对基本数据类型和级联对象进行参数校验的演示,但是在实际中我们往往需要更为复杂的校验规则,比如注册用户的密码和确认密码进行校验,这个时 ...