Python中print/format字符串格式化实例
Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型。简单的使用例子如下
# 例:字符串格式化
Name = '17jo'
print 'www.%s.com'%Name
>> www.111cn.net
Name = '17jo'
Zone = 'com'
print 'www.%s.%s'%(Name,Zone)
>> www.111cn.net
字符串格式化时百分号后面有不同的格式符号,代表要转换的不同类型,具体的表示符号如下面所示。
格式符号 表示类型
%s 字符串
%d/%i 十进制整数
%u 十进制整数
%o 八进制整数
%x/%X 十六进制整数
%e/%E 科学计数
%f/%F 浮点数
%% 输出%
格式符号为数字时前面可以加为数和补缺位如:%[0][总位数][.][小数位数]来设定要转换的样式,具体使用方法如下:
# 例:数字格式化
nYear = 2018
nMonth = 8
nDay = 18
# 格式化日期 %02d数字转成两位整型缺位填0
print '%04d-%02d-%02d'%(nYear,nMonth,nDay)
>> 2018-08-18 # 输出结果
fValue = 8.123
print '%06.2f'%fValue # 保留宽度为6的2位小数浮点型
>> 008.12 # 输出
print '%d'%10 # 输出十进制
>> 10
print '%o'%10 # 输出八进制
>> 12
print '%02x'%10 # 输出两位十六进制,字母小写空缺补零
>> 0a
print '%04X'%10 # 输出四位十六进制,字母大写空缺补零
>> 000A
print '%.2e'%1.2888 # 以科学计数法输出浮点型保留2位小数
>> 1.29e+00
到此,我们已经演示了怎样替换指定的字段。我们还可以通过在格式化指示符后面添加一个冒号来进行精确格式化。例如:
python: format
# Field 0: left justify, pad to 15 characters
# Field 1: right justify, pad to 6 characters
fmt = '{0:15} ${1:>6}'
fmt.format('Registration', 35) ->
'Registration $ 35'
fmt.format('Tutorial', 50) ->
'Tutorial $ 50'
fmt.format('Banquet', 125) ->
'Banquet $ 125'
格式化指示符可以通过嵌套进行引用。
fmt = '{0:{1}}'
width = 15
fmt.format('Invoice #1234', width) ->
'Invoice #1234 '
width = 35
fmt.format('Invoice #1234', width) ->
'Invoice #1234 '
可以指定所需长度的字符串的对齐方式。
效果字符:
< (默认)左对齐
> 右对齐
^ 中间对齐
= (只用于数字)在小数点后进行补齐
格式化指示符可以包含一个展示类型来控制格式。例如,浮点数可以被格式化为一般格式或用幂来表示。
>>> '{0:g}'.format(3.75)
'3.75'
>>> '{0:e}'.format(3.75)
'3.750000e+00'
展示类型有很多。2.6的文档里有完整的列表。这里列出一些示例。
'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
类和类型可以定义一个__format__()方法来控制怎样格式化自己。它会接受一个格式化指示符作为参数:
def __format__(self, format_spec):
if isinstance(format_spec, unicode):
return unicode(str(self))
else:
return str(self)
还有一个内置的format()方法可以用来格式化一个值。它会调用类型的__format__()方法,并将格式化指示符作为参数传进去。
>>> format(75.6564, '.2f')
'75.66'
Python中print/format字符串格式化实例的更多相关文章
- [翻译]python3中新的字符串格式化方法-----f-string
从python3.6开始,引入了新的字符串格式化方式,f-字符串. 这使得格式化字符串变得可读性更高,更简洁,更不容易出现错误而且速度也更快. 在本文后面,会详细介绍f-字符串的用法. 在此之前,让我 ...
- Python中format_map与format字符串格式化的区别
在Python3中使用format和format_map方法都可以进行字符串格式化,但format是一种所有情况都能使用的格式化方法,format_map仅使用于字符串格式中可变数据参数来源于字典等映 ...
- python 之format字符串格式化
print函数之format字符串格式化方法的使用与学习笔记. 一.映射关系 (1)“映射”示例,以下通过位置举例说明: [+]Example_1: >>> print(" ...
- 第3.10节 Python强大的字符串格式化新功能:使用format字符串格式化
一. 引言 前面两节介绍的字符串格式化方法,都有其本身对应的缺陷,老猿不建议大家使用,之所以详细介绍主要是考虑历史代码的兼容性,方便大家理解前人留下的代码.老猿推荐大家新编码时使用format方 ...
- Python中使用f字符串进行字符串格式化的方法
在<第3.10节 Python强大的字符串格式化新功能:使用format字符串格式化>介绍了使用format进行字符串格式化的方法,在Python 3.6中,如果格式化字符串中的关键字参数 ...
- 第3.11节 Python强大的字符串格式化新功能:format字符串格式化的格式控制
第3.11节 format字符串格式化的格式控制 一. 引言 上节介绍了四种format进行字符串格式化的 ...
- python中一些内置函数实例
lambda表达式 简单函数可用lambda表达式 1. def f1() return(123) r1=f1() print() 2. f2=lambda:123 r2=f2() print() 以 ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
- Python中日期和时间格式化输出的方法
本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...
随机推荐
- <mvc:annotation-driven />注解意义(转)
文章转自http://elf8848.iteye.com/blog/875830 http://www.cnblogs.com/shuo1208/p/5552134.html 暂时只知道对json的支 ...
- elasticsearch6.1 安装问题
问题:Caused by: java.lang.RuntimeException: can not run elasticsearch as root [root@localhost logs]# a ...
- Android Canvas saveLayerAlpha使用
Canvas.saveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags): 本 ...
- postgrepsql 创建函数
-- 这里的CREATE OR REPLACE FUNCTION 为固定写法: "public"."function_info_a1" 这个为函数名 C ...
- BZOJ1816 CQOI2010 扑克牌 贪心
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1816 题意:有$N$堆牌,第$i$堆牌有$c_i$张牌,还有$M$张$joker$,每 ...
- Android 真机调试
/************************摘抄*****************************/ 刚好遇到这个问题,在网上百度了一下,看到有人分享了引起该问题的几个原因: 1.手机设 ...
- pandas:解决groupby().apply()方法打印两次
对于以下dataframe执行dataframe.groupby(['name', 'course']).apply(lambda x: test(x)) 操作 其中test(x)函数为: def t ...
- 51nod 抽卡大赛
抽卡大赛 链接 分析: $O(n^4)$的做法比较好想,枚举第i个人选第j个,然后背包一下,求出有k个比他大的概率. 优化: 第i个人,选择一张卡片,第j个人选的卡片大于第i个人的概率是$p_j$,那 ...
- Spring Cloud 入门教程(九): 路由网关zuul
在微服务架构中,需要几个关键的组件,服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个组件可以组建一个简单的微服务架构.客户端的请求首先经过负载均衡(zuul.Ngnix),再 ...
- 【下一代核心技术DevOps】:(七)持续集成Jenkins的应用(Aliyun Pipiline持续构建)
1. 前言 使用Jenkins比较好的就是可以在整个构建顺序中增加自定义的动作,比如构建成功给Leader发个邮件,给团队核心发个微信什么的. 当然最基本的核心还是它可以构建多种开发语言的项目,此类构 ...