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.nm 是显示的最小总宽度,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'))

结果:
君不见黄河之水天上来,奔流到海不复回。
君不见高堂明镜悲白发,朝如青丝暮成雪。

参考:菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值