|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 caodouhao 于 2017-8-1 15:17 编辑
字符串:格式化
上节课我们介绍了Python字符串的N多种奇葩方法的用法,但我们唯独漏了一个format()方法。
为何不把format()方法在上节课一起讲呢?因为小甲鱼觉得format()方法跟今天的话题如出一辙,都是关于字符串的格式化。
那什么是字符串的格式化,又为什么需要对字符串进行格式化呢?
举个小例子给大家听下你就明白了:“介个,某天小甲鱼召开了鱼C国际互联安全大会,到会朋友有来自世界各地各界的精英人士,有小乌龟啦,有喵星人啦,有旺星人啦,当然还有米奇和唐老鸭,哇晒,那气势简直跟小甲鱼开了个动物园一样……但是问题来了,尼玛真是鸡同鸭讲,驴唇不对马嘴, 风马牛不相及,到最后真是临表涕零,不知所云!但是最后聪明的小甲鱼还是把问题给解决了,其实也很简单,各界都找一个翻译就得了,统一都翻译成普通话,那么问题就结了……”
最后我们这个大会取得了卓越的成功并记入了吉尼斯动物大全,这是后话,咱就不提了。举这个例子是想跟大家说:格式化字符串,就是按照统一的规格去输出一个字符串。
如果规格不统一,就很可能造成误会,例如十六进制的10跟十进制的10跟二进制的10完全是不同的概念!字符串格式化,正是帮助我们纠正并规范这类问题。
列表和元组都有他们的方法,大家可能觉得列表的方法已经非常多了,其实字符串更多呢,而且很多都挺莫名其妙的,这里就给大家谈谈出各种奇葩的字符串的方法。
格式化操作符:%
- >>> "{0} love {1}.{2}".format("I","FishC","com")
- 'I love FishC.com'
- >>> "{a} love {b}.{c}".format("I","FishC","com")
- Traceback (most recent call last):
- File "<pyshell#1>", line 1, in <module>
- "{a} love {b}.{c}".format("I","FishC","com")
- KeyError: 'a'
- >>> "{a} love {b}.{c}".format(a="I",b="FishC",c="com")
- 'I love FishC.com'
- >>>
复制代码- >>> "{0} love {b}.{c}".format("I",b="FishC",c="com")
- 'I love FishC.com'
- >>>
复制代码- >>> "{a} love {b}.{0}".format(a="I",b="FishC","com")
- SyntaxError: positional argument follows keyword argument
- >>>
复制代码- >>> "{0:.1f}{1}".format(27.658,"GB")
- '27.7GB'
- >>>
复制代码
字符串格式化符号含义
%c 格式化字符及其 ASCII 码
- >>> "%c %c %c" % (97,98,99)
- 'a b c'
复制代码
%s 格式化字符串
- >>> "%s" % "I Love FishC.com"
- 'I Love FishC.com'
- >>>
复制代码
%d 格式化整数
- >>> "%d + %d = %d" % (4, 5, 1+5)
- '4 + 5 = 6'
- >>>
复制代码
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
- >>> "%x" % 10
- 'a'
- >>> "%X" % 10
- 'A'
- >>>
复制代码
%f 格式化浮点数字,可指定小数点后的精度
- >>> "%f" % 27.658
- '27.658000'
- >>>
复制代码
%e 用科学计数法格式化浮点数
- >>> "%e" % 27.658
- '2.765800e+01'
- >>>
复制代码
%E 作用同 %e,用科学计数法格式化浮点数
- >>> "%E" % 27.658
- '2.765800E+01'
- >>>
复制代码
%g 根据值的大小决定使用 %f 或 %e
- >>> "%g" % 27.658
- '27.658'
- >>>
复制代码
符号 | 说明 | %c | 格式化字符及其 ASCII 码 | %s | 格式化字符串 | %d | 格式化整数 | %o | 格式化无符号八进制数 | %x | 格式化无符号十六进制数 | %X | 格式化无符号十六进制数(大写) | %f | 格式化浮点数字,可指定小数点后的精度 | %e | 用科学计数法格式化浮点数 | %E | 作用同 %e,用科学计数法格式化浮点数 | %g | 根据值的大小决定使用 %f 或 %e | %G | 作用同 %g,根据值的大小决定使用 %f 或者 %E |
格式化操作符辅助命令
m.n m 是显示的最小总宽度,n 是小数点后的位数
- >>> "%5.1f" % 27.658
- ' 27.7'
- >>>
复制代码 m = 5, 即最小总宽度等于5, 27.7前面有一个空格。
- >>> "%.2ef" % 27.658
- '2.77e+01f'
- >>>
复制代码 n = 2, 即小数点后是2位。
- >>> "%10d" % 27.658
- ' 27'
- >>>
复制代码
- 用于左对齐
- >>> "%-10d" % 27.658
- '27 '
- >>>
复制代码
+ 在正数前面显示加号(+)
- >>> "%+d" % 27.658
- '+27'
- >>>
复制代码
- >>> "%+d" % -27.658
- '-27'
- >>>
复制代码
# 在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'
- >>> "%#o" % 10
- '0o12'
- >>>
复制代码- >>> "%#X" % 108
- '0X6C'
- >>>
复制代码- >>> "%#d" % 108
- '108'
- >>>
复制代码
0 显示的数字前面填充 '0' 取代空格
- >>> "%010d" % 108
- '0000000108'
- >>>
复制代码- >>> "%-010d" % 108
- '108 '
- >>>
复制代码 最对齐,后边不能用0填充。
符号 | 说明 | m.n | m 是显示的最小总宽度,n 是小数点后的位数 | - | 用于左对齐 | + | 在正数前面显示加号(+) | # | 在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X' | 0 | 显示的数字前面填充 '0' 取代空格 |
Python 的转义字符及其含义
符号 | 说明 | \' | 单引号 | \" | 双引号 | \a | 发出系统响铃声 | \b | 退格符 | \n | 换行符 | \t | 横向制表符(TAB) | \v | 纵向制表符 | \r | 回车符 | \f | 换页符 | \o | 八进制数代表的字符 | \x | 十六进制数代表的字符 | \0 | 表示一个空字符 | \\ | 反斜杠 |
|
评分
-
查看全部评分
|