Python学习日记-day5基础篇 格式化字符串 编码解码
格式化字符串
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
1.%占位符
- 中间用%连接
- 顺序一 一对应
print("我叫%s,我%d岁了" % (name,age))
2.{}
- 中间用 . 连接
- 可以多次使用,只需添加索引
- 按照索引填入,也可不填索引,但是程序只能按照顺序读取,且{}数量不能多出所给的变量数
print("我叫{0},我{1}岁了,我真的叫{0}" . format (name,age))
↑ ↑
{0} {1}
3.f-string
- f 开头
- 在{}中填入变量
print(f"我叫{name},我{age}岁了")
字符串格式化符号
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %F 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
sp | 在正数前面显示空格 |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
例子
print("%10d"%99) # %10d表示的是宽度,表示保留包括字符在内的10位,如果超过,则以实际长度为准
print("hello"*2)
print("%f"%3.1415926535898)
print("%.5f"%3.1415926535898) # %.5f表示的是精度,表示保留小数点后10位
print("%10.5f"%3.1415926535898)
print("{0}".format(3.1415926535898))
print("{0:.5}".format(3.1415926535898)) # {0:.5} 表示一共保留五个数字
print("{0:.5f}".format(3.1415926535898)) # {0:.5f} 表示一共保留五个小数
print("{0:10.5}".format(3.1415926535898)) # {0:10.5} 表示一共保留五个数字同时占10位
编码解码
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
编码
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。
t = "君不见黄河之水天上来,奔流到海不复回。"
s = "君不见高堂明镜悲白发,朝如青丝暮成雪。"
print(t.encode(encoding='UTF-8'))
print(s.encode(encoding='GBK'))
结果:
b'\xe5\x90\x9b\xe4\xb8\x8d\xe8\xa7\x81\xe9\xbb\x84\xe6\xb2\xb3\xe4\xb9\x8b\xe6\xb0\xb4\xe5\xa4\xa9\xe4\xb8\x8a\xe6\x9d\xa5\xef\xbc\x8c\xe5\xa5\x94\xe6\xb5\x81\xe5\x88\xb0\xe6\xb5\xb7\xe4\xb8\x8d\xe5\xa4\x8d\xe5\x9b\x9e\xe3\x80\x82'
b'\xbe\xfd\xb2\xbb\xbc\xfb\xb8\xdf\xcc\xc3\xc3\xf7\xbe\xb5\xb1\xaf\xb0\xd7\xb7\xa2\xa3\xac\xb3\xaf\xc8\xe7\xc7\xe0\xcb\xbf\xc4\xba\xb3\xc9\xd1\xa9\xa1\xa3'
解码
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。
t1 = t.encode(encoding='UTF-8')
s1 = s.encode(encoding='GBK')
print(t1.decode(encoding='UTF-8'))
print(s1.decode(encoding='GBK'))
结果:
君不见黄河之水天上来,奔流到海不复回。
君不见高堂明镜悲白发,朝如青丝暮成雪。
参考:菜鸟教程