数据类型-字符串
字符串(不可变类型): python3 默认编码为utf-8 而其中字符串用unicode编码存储在内存
info = ”guohan“ info 1= "1"
公共功能:
1.索引:info[0] = ”g“
2.切片:info【1:】 = ”uohan“
3.步长:info【::2】 = ”goa”
4.for循环:for i in info:
5.删除:字符串是不可变类型所以其内部字符不可被删
6.修改:同理 (5,6 由于不可变当有改动时不再是info 而是其他变量接收变成新字符串)
7.len: len(info)>>>6
独有方法:
1.upper/lower: v = info.upper()/lower()-> v = "GUOHAN"/"guohan"
2.isdecimal(判断是否为十进制数字): print(info1.isdecimal())->True 若info = “二”则为false
3.encode(编码转换): encode:字符串转二进制 info.encode(utf-8) 将info根据utf-8编码转换成二进制
decode:二进制转换成字符 如:v= b“xe4....." v.decode(utf-8) = ”你好“
4.replace(替换):格式:info.replace(old,new,num(几次的意思)) num不指定则是全部替换
info= ”guoohan“ info.replace(o,n,1)->"gunohan"
5.split(分割 ):格式:info.split(指定字符,num) num为分割次数 分割成列表(里面不含指定字符)
info = "guo2han" info.split("2")->[”guo","han"]
info= ”guo2h2an" info.split("2",1)->["guo","h2an"]
6.partition(将指定字符串分成3份):分割成元组(前面,指定字符,后面) info.partition("o")->('gu','o','han')
7.strip(去除两边空白,换行符,制表符): info= “ guohan ” info.strip()->"guohan"
8.join(连接): join括号里面的东西不一定是字符串但.前面必须是,且最后连接成的东西一定是字符串
v = "-" a = ["g","o"] v.join(a)->"g-o"
字符串格式化:
%占位符:使用时注意占位符和变量类型匹配
%s>>>str %d>>>int %f>>>folat < 左对齐 > 右对齐
1.输出 name = "guohan" age = "20"
print("我是%s,年龄%d"%(name,age))
2.格式化输出 .nf%保留n位小数
format方法:
1.输出 print("我是{0},年龄{1}".format(name,age))
2.格式化输出: {:.nf} print("{:.2f}".format(1.0/3))>>>0.33
{:m<nd} 控制数据输出宽度补齐数字 n为宽度,m为补齐的数字左对齐
{:n%} 用百分号表示后保留n位
f-string方法:
1.输出 print(f“我是{name},年龄{age}")
2.格式化输出 {num:.nf} num = 2.3 print(f"{num:.2f}")>>>2.30
{num:0nd} 宽度n,不足补0
s = ”hello“
print(f”{s:<-10}") 左对齐宽度为10,用-补齐
字节类型(bytes类型):py3中 使用encode()方法将以unicode编码的字符串按照指定编码进行编码后返回的都是bytes类型
特点:前面有b
v = "郭晗"
v1 = v.encode('utf-8')
print(v1,type(v1))
>>>b'\xe9\x83\xad\xe6\x99\x97' <class 'bytes'>
v = "guohan"
v1 = v.encode('utf-8')
print(v1,type(v1))
>>>b'guohan' <class 'bytes'>
py3str = py2unicode类型
py3bytes = py2str
字符串类型一般用于内存中做数据操作
字节类型一般用于数据存储和网络传输
浙公网安备 33010602011771号