提到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. for-loop 与 json.Unmarshal 性能分析概要

    原文地址:for-loop 与 json.Unmarshal 性能分析概要 前言 在项目中,常常会遇到循环交换赋值的数据处理场景,尤其是 RPC,数据交互格式要转为 Protobuf,赋值是无法避免的 ...

  2. Algs4-2.1.17动画-选择排序

    2.1.17动画.修改插入排序和选择排序的代码,使之将数组内容绘制成正文中所示的棒状图.在每一轮排序后重绘图片来产生动画效果,并以一张"有序"的图片作为结束,即所有圆棒均已按照高度 ...

  3. Shiro(一):Shiro介绍及主要流程

    什么是Shiro Apache Shiro是一个强大且灵活的开源安全框架,易于使用且好理解,撇开了搭建安全框架时的复杂性. Shiro可以帮助我们做以下几件事: 认证使用者的身份 提供用户的访问控制, ...

  4. 数据库SQL语言从入门到精通--Part 3--SQL语言基础知识

    数据库从入门到精通合集(超详细,学习数据库必看) 一.关系 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二维表 从用户角度,关系模型中数据的逻辑结构是 ...

  5. 数学--数论--hdu 5878 I Count Two Three(二分)

    I will show you the most popular board game in the Shanghai Ingress Resistance Team. It all started ...

  6. mysql5.7 修改密码,修改权限

    1.修改数据库对指定用户和ip权限 a. IP为192.168.0.1的用户jack拥有对数据库datebase的表table的 增删改查权限, ,连接密码为password grant select ...

  7. js递归实现方式

    定义: 递归函数就是在函数体内调用本函数: 递归函数的使用要注意函数终止条件避免死循环: 递归实现形式: 1.声明一个具名函数,通过函数名调用 function f(a){ if(a<=1){ ...

  8. search(10)- elastic4s-multi_match:多字段全文搜索

    在全文搜索中我们常常会在多个字段中匹配同一个查询条件或者在不同的字段中匹配不同的条件.比如下面这个例子: GET /books/_search { "query": { " ...

  9. jQuery中操作属性的方法attr与prop的区别

    attr 与 prop 都可以对某个属性进行获取和设置的操作,二者的用法相同: <script src = 'jQuery.js'></script> <script&g ...

  10. 【HBase】通过Bulkload批量加载数据到Hbase表中

    目录 需求 步骤 一.开发MapReduce 二.打成Jar包放到linux执行 三.有两种办法将HFile文件加载到HBase表中 开发代码 Hadoop命令运行 需求 将hdfs上面的这个路径 / ...