Python如何格式化输出字符串!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python如何格式化输出字符串!相关的知识,希望对你有一定的参考价值。
print("***************** ①请选择要打包的资源类型 *****************");
print(" ** 0: %-18s %-18s 目标平台:%-18s" %("CSV","数据表资源","PC,ios,android"));
print(" ** 1: %-18s %-18s 目标平台:%-18s" %("UI","界面资源","PC,IOS,Android"));
print(" ** 2: %-18s %-18s 目标平台:%-18s" %("Scene","场景资源","PC,IOS,Android"));
print(" ** 3: %-18s %-18s 目标平台:%-18s" %("Audio","音乐音效资源","PC,IOS,Android"));
print(" ** 4: 0:18 1:18 2:<18".format("HalfRole","半身像资源","目标平台:PC,IOS,Android"));
print(" ** 5: 0:18 1:18 2:<18".format("HeroCard","卡牌资源","目标平台:PC,IOS,Android"));
print(" ** 6: 0:18 1:18 2:<18".format("SingleSpriteImage","图标资源","目标平台:PC,IOS,Android"));
print(" ** 7: 0:18 1:18 2:<18".format("CharacterAndEffect","角色和技能特效资源","目标平台:PC"));
print("*********************************************************");
这样排版最后怎么是歪的呢!麻烦大神门看看为什么!
贴一堆输出方式没用啊,我又不是不知道该怎么去格式化输出,我的问题看图就知道了!大神只需告诉我代码你哪里出的问题,导致最后一列没对齐就行了,别在贴怎么去格式化输出的代码了!
python一共有两种格式化输出语法,
一种是类似于C语言printf的方式,称为 Formatting Expression
>>>print '%s %d-%d' % ('hello', 7, 1)
'hello 7-1'
另一种是类似于C#的方式,称为String Formatting Method Calls
>>>print '0 1:2'.format('hello', '1', '7')
'hello 1:7'
第一种方式可以指定浮点数的精度,例如
>>> print'%.3f' % 1.234567869
'1.235'
运行时动态指定浮点数的精度
但是当代码在运行中如何动态地通过参数来指定浮点数的精度呢?
python的神奇之处在于它又提供了一种非常方便的语法。只需要在 typecode(这里是f)之前加一个 *,浮点数的精度就用它前面的数字来指定。
>>> for i in range(5):
... print'%.*f' % (i, 1.234234234234234)
...
'1'
'1.2'
'1.23'
'1.234'
'1.2342'
通过输出结果可以看出,精度都是在运行时动态指定,这样就省去了格式化字符串的拼凑。
使用 String Formatting Method Calls 可以更简洁地完成功能。
>>> for i in range(5):
... print'0:.1f'.format(1 / 3.0, i)
...
'0'
'0.3'
'0.33'
'0.333'
'0.3333'
附录是一些常用用法——
python print格式化输出。
1. 打印字符串
print ("His name is %s"%("Aviad"))
2.打印整数
print ("He is %d years old"%(25))
3.打印浮点数
print ("His height is %f m"%(1.83))
4.打印浮点数(指定保留小数点位数)
print ("His height is %.2f m"%(1.83))
5.指定占位符宽度
print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))
6.指定占位符宽度(左对齐)
print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))
7.指定占位符(只能用0当占位符?)
print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))
8.科学计数法
format(0.0015,'.2e')
格式是这样的print('格式化形式...格式化形式...' % (对象,对象))
对象的类型是各种各样的!
1.print('%s...%s...' % (对象,对象))这里的%s是字符串形式,对象可以是变量(变量的值是字符串形式)或者字符串
2.print('%d...%d...' % (对象,对象))这里的%d是数形式,对象可以是变量(变量的值是数,但是不能有小数点)或者没有小数点的数
3.print('%.数字f...%.数字f' % (对象,对象))这里的%f是数形式,对象可以是变量(变量的值是数,但是一定要有小数点)或者有小数点的数
PS:%f的格式f前面是留住的小数点,留着的小数点数前面要有个.例:a = 5.44我想输出是留下一位小数就写print('%.1f' % (a))就是正确输出了
望采纳,谢谢
Python如何输出格式化的字符串
1 为什么需要格式化输入字符串
我们经常会输出类似‘亲爱的xxx你好!你xx月的话费是xx,余额是xx‘之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
--引自廖雪峰老师官网
2 如何实现输入格式
2.1 使用%
号的方式实现,如:
>>> name = "xiaoming" >>> age =20 >>> "%s is %d years old." % (name, age) ‘xiaoming is 20 years old.‘
在Python中,%
就是用来格式化字符串的。%s表示用字符串替换,%d表示用整数替换。有几个%s
或%d
,后面就跟着几个变量或值,按对应的顺序,依次替换
如果只有一个%s
,后面的括号可以去掉
常见的占位符有:
%d 整数 %f 浮点数 %s 字符串 %x 十六进制整数
2.2 format
- 一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,过这种方式写起来比%要麻烦得多:
>>> name = "xiaoming" >>> age =20 >>> "%s is %d years old." % (name, age) ‘xiaoming is 20 years old.‘ >>> "{0} is {1} years old.".format(name, age) ‘xiaoming is 20 years old.‘ >>> "{} is {} years old.".format(name, age) ‘xiaoming is 20 years old.‘
注意:
1.占位符中的0、1等,可以省略,但加上更具可读性。
2.format中不仅可以加字符串、整数,还可以是元组、字典等
以上是关于Python如何格式化输出字符串!的主要内容,如果未能解决你的问题,请参考以下文章