ASKII编码:最早,127个字符,一个字节
Unicode编码:两个字节,存储空间大,传输慢
UTF-8编码:可变长编码,根据Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文为1个字节,汉字通常为3个字节,只有生僻字符才会编码成4-6个字符
encode()方法可以编码为制定的bytes:
>>>'ABC'.encode('ascii')
b'ABC'
>>>'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
decode()方法把bytes转化为str:
>>>b'ABC'.decode('ascii')
'ABC'
>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
新创建的文件,一般加上:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释为:告诉Linux或者OS X系统,这是一个Python可执行程序,Windows会忽略这个注释
第二行注释为:告诉Python解释器,按照UTF-8的格式读取源代码
格式化:
占位符 | 替换内容 |
%d | 整数 |
%s | 浮点数 |
%f | 字符串 |
%x | 十六进制数 |
format()函数:
它通过{}和:来代替%
#通过位置
print('{0},{1}'.format('nihao!',100))
print('{},{}'.format('nihao!',100))
print('{1},{0},{1}'.format('nihao!',100))
#通过关键字参数
print('{name},{age}'.format(name = 'jj',age = 100))
#通过映射
list_data = ['jj',33,'hello']
print('{0[0]},is {0[1]} old , say {0[2]}'.format(list_data))
#填充与对齐
print('{:>8}'.format('189')) #从左往右,填充为空,宽度为8位
' 189'
print('{:0>8}'.format('189')) #从左往右,填充为0,宽度为8位
'00000189'
#精度与类型
print('{:.2f}'.format(321.321321))
321.32
#用来做金额的千位分隔符
print('{:,}'.format(123123123))
123,123,123
#其他类型
print('{:b}'.format(18)) #二进制 10010
print('{:d}'.format(18)) #十进制 18
print('{:o}'.format(18)) #八进制 22
print('{:x}'.format(18)) #十六进制 12
^,<,>分别是剧中,左对齐,右对齐,后面跟着总宽度;
:号后面带填充的字符,只能是一个字符,不指定规则默认为空格填充;
+表示在正数前面加+,负数前面加-,(空格)表示在正数前面加空格 ;
b、d、o、x分别是 二进制,十进制,八进制,十六进制
此外我们还可以用{}转义大括号,如下例
print('{}对应的是{{0}}'.format('runoob'))
runoon对应的是{0}