写在前面:
最近的事情好像有很多. 李咏的离去, 让我觉得很突然, 仿佛印象中就是主持节目的他, 看着他和哈文的爱情, 很是感动. 离去, 没有什么抱怨, 只是遗憾.
总会感慨, 时光的流逝.
好像真的很快, 转眼间, 我都这么大了.
最近, 刘某人总说的一句话, 小时候虽然很穷, 但是很快乐
而现在, 不仅仅是穷, 而且还不快乐
想想还真是(手动捂脸)
最近身体不舒服, 好像学习也停滞不前.
好好加油! 感谢每一天努力的自己, 好好珍惜身边的一切
希望快快好起来, 做那个活力满满的小伙郭
昨晚半夜不知道是肚子疼醒, 还是做噩梦了.
满头大汗醒来,
觉得自己一直就是一个长不大的孩子
身边的人陆陆续续结婚生孩子
我还在学校晃来晃去, 估计我爸妈都比我着急
哈哈哈
说了一通(也不知道要表达什么)
整理整理学习笔记, 回去休息啦. 晚安, 为了梦想而努力的人们
每一个为了梦想而努力的陌生人, 加油!
字符串格式化
Python 的字符串格式化有两种方式: 百分号方式, format 方式
一, 百分号方式
格式:
%[(name)][flags][width].[precision]typecode
(name) 可选, 用于选择指定的 key
flags 可选, 可供选择的值有:
+ 右对齐; 正数前加正好, 负数前加负号;
- 左对齐; 正数前无符号, 负数前加负号;
空格 右对齐; 正数前加空格, 负数前加负号;
0 右对齐; 正数前无符号, 负数前加负号; 用 0 填充空白处
width 可选, 占有宽度
.precision 可选, 小数点后保留的位数
typecode 必选
s, 获取传入对象的__str__方法的返回值, 并将其格式化到指定位置
r, 获取传入对象的__repr__方法的返回值, 并将其格式化到指定位置
c, 整数: 将数字转换成其 unicode 对应的值, 10 进制范围为 0 <= i <= 1114111(py2.7 则只支持 0-255); 字符: 将字符添加到指定位置
o, 将整数转换成 八 进制表示, 并将其格式化到指定位置
x, 将整数转换成十六进制表示, 并将其格式化到指定位置
d, 将整数, 浮点数转换成 十 进制表示, 并将其格式化到指定位置
e, 将整数, 浮点数转换成科学计数法, 并将其格式化到指定位置(小写 e)
E, 将整数, 浮点数转换成科学计数法, 并将其格式化到指定位置(大写 E)
f, 将整数, 浮点数转换成浮点数表示, 并将其格式化到指定位置(默认保留小数点后 6 位)
F, 同上
g, 自动调整将整数, 浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法), 并将其格式化到指定位置(如果是科学计数则是 e;)
G, 自动调整将整数, 浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法), 并将其格式化到指定位置(如果是科学计数则是 E;)
%, 当字符串中存在格式化标志时, 需要用 %% 表示一个百分号
常用格式化:
1.%typecode
%s 获取传入对象的__str__方法的返回值, 并将其格式化到指定位置
- (可以接受任何数据类型, 比较万能, 但是为了提高程序可读性, 我们选择对应的格式化方式)
- tpl = "i am %s" % "xhg"
- print(tpl)
- # 执行结果
- i am xhg
- tp2 = "i am %s, i am from %s" % ("xhg","China")
- print(tp2)
- # 执行结果
- i am xhg, i am from China
- 2.%typecode
%d 将整数, 浮点数转换成 十 进制表示, 并将其格式化到指定位置
- tpl = "i am %s age %d" % ("xhg", 18)
- print(tpl)
- # 执行结果
- i am xhg age 18
- 3.%[(name)]typecode
(name) 可选, 用于选择指定的 key
- tpl = "i am %(name)s age %(age)d" % {
- "name": "xhg", "age": 18
- }
- print(tpl)
- # 执行结果
- i am xhg age 18
- 4.%.[precision]typecode
.precision 可选, 小数点后保留的位数
f, 将整数, 浮点数转换成浮点数表示, 并将其格式化到指定位置(默认保留小数点后 6 位)
- tpl = "percent %.2f" % 99.97623
- print(tpl)
- # 执行结果
- percent 99.98
- 5.%[(name)].[precision]typecode
(name) 可选, 用于选择指定的 key
.precision 可选, 小数点后保留的位数
f, 将整数, 浮点数转换成浮点数表示, 并将其格式化到指定位置(默认保留小数点后 6 位)
- tpl = "i am %(pp).2f" % {
- "pp": 123.425556,
- }
- print(tpl)
- # 执行结果
- i am 123.43
6.%, 当字符串中存在格式化标志时, 需要用 %% 表示一个百分号
- tpl = "i am %(pp).2f %%" % {
- "pp": 123.425556,
- }
- print(tpl)
- # 执行结果
- i am 123.43 %
二, Format 方式
格式:
[[fill]align][sign][#][0][width][,][.precision][type]
fill [可选] 空白处填充的字符
align [可选] 对齐方式(需配合 width 使用)
<, 内容左对齐
>, 内容右对齐(默认)
=, 内容右对齐, 将符号放置在填充字符的左侧, 且只对数字类型有效. 即使: 符号 + 填充物 + 数字
^, 内容居中
sign [可选] 有无符号数字
+, 正号加正, 负号加负;
-, 正号不变, 负号加负;
空格 , 正号空格, 负号加负;
# [可选] 对于二进制, 八进制, 十六进制, 如果加上 #, 会显示 0b/0o/0x, 否则不显示
, [可选] 为数字添加分隔符, 如: 1,000,000
width [可选] 格式化位所占宽度
.precision [可选] 小数位保留精度
type [可选] 格式化类型
传入 "字符串类型" 的参数
s, 格式化字符串类型数据
空白, 未指定类型, 则默认是 None, 同 s
传入 "整数类型" 的参数
b, 将 10 进制整数自动转换成 2 进制表示然后格式化
c, 将 10 进制整数自动转换为其对应的 unicode 字符
d, 十进制整数
o, 将 10 进制整数自动转换成 8 进制表示然后格式化;
x, 将 10 进制整数自动转换成 16 进制表示然后格式化(小写 x)
X, 将 10 进制整数自动转换成 16 进制表示然后格式化(大写 X)
传入 "浮点型或小数类型" 的参数
e, 转换为科学计数法 (小写 e) 表示, 然后格式化;
E, 转换为科学计数法 (大写 E) 表示, 然后格式化;
f , 转换为浮点型 (默认小数点后保留 6 位) 表示, 然后格式化;
F, 转换为浮点型 (默认小数点后保留 6 位) 表示, 然后格式化;
g, 自动在 e 和 f 中切换
G, 自动在 E 和 F 中切换
%, 显示百分比(默认显示小数点后 6 位)
常用格式化:
1. 格式化的数据要一一对应, 前后数据个数不一致, 则报错
- tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')
- print(tpl)
- # 执行结果
- i am seven, age 18, alex
2. 传入的数据以列表形式传入, 用 * 表示
- tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
- print(tpl)
- # 执行结果
- i am seven, age 18, alex
3. 将 seven 赋值给所有位置为 0 的占位符
- tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
- print(tpl)
- # 执行结果
- i am seven, age 18, really seven
4. 传入的数据以列表形式传入, 用 * 表示
- tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])
- print(tpl)
- # 执行结果
- i am seven, age 18, really seven
5. 将 "seven" 赋值给所有 name
- tpl = "i am {name}, age {age}, really {name}".format(name=, age=18)
- print(tpl)
- # 执行结果
- i am seven, age 18, really seven
6. 传入的数据以字典形式传入, 用 ** 表示
- tpl = "i am {name}, age {age}, really {name}".format(**{
- "name": "seven", "age": 18
- })
- print(tpl)
- # 执行结果
- i am seven, age 18, really seven
7.m[n]代表第 m 个元素中的第 n 个元素, 利用索引来为占位符赋值
- tpl = "i am {1[0]}, age {0[1]}, really {2[2]}".format([1, 2, 3], [11, 22, 33],[44,55,66])
- print(tpl)
- # 执行结果
- i am 11, age 2, really 66
8.s, 格式化字符串类型数据; d, 十进制整数; f , 转换为浮点型 (默认小数点后保留 6 位) 表示, 然后格式化
- tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
- print(tpl)
- # 执行结果
- i am seven, age 18, money 88888.100000
9. 传入的数据以列表形式传入, 用 * 表示
- tpl = "i am {:s}, age {:d}".format(*["seven", 18])
- print(tpl)
- # 执行结果
- i am seven, age 18
10.{name:s}传入的 name 数据的类型是字符串;{age:d}传入的 age 数据的类型是十进制整数
- tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)
- print(tpl)
- # 执行结果
- i am seven, age 18
11. 传入的数据以字典形式传入, 用 ** 表示
- tpl = "i am {name:s}, age {age:d}".format(**{
- "name": "seven", "age": 18
- })
- print(tpl)
- # 执行结果
- i am seven, age 18
- 12.
b, 将 10 进制整数自动转换成 2 进制表示然后格式化
d, 十进制整数 o, 将 10 进制整数自动转换成 8 进制表示然后格式化;
x, 将 10 进制整数自动转换成 16 进制表示然后格式化(小写 x)
X, 将 10 进制整数自动转换成 16 进制表示然后格式化(大写 X)
%, 显示百分比(默认显示小数点后 6 位)
- tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
- print(tpl)
- # 执行结果
- numbers: 1111,17,15,f,F, 1587.623000%
13. 将 15 赋值给每一个位置为 0 的占位符
- tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
- print(tpl)
- # 执行结果
- numbers: 1111,17,15,f,F, 1500.000000%
14. 将 15 赋值给 num
- tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)
- print(tpl)
- # 执行结果
- numbers: 1111,17,15,f,F, 1500.000000%
来源: https://www.cnblogs.com/guoruxin/p/9879568.html