Python碎片式学习
python的特色
每个语言都有自己的独特的地方 而python语言的列表,字典,集合,元组 可以称的上是python的四大"神兽"了
a = [] #列表list()
print(type(a))
a = {} #字典dict()
print(type(a))
a = {1,2,3} #集合set()
print(type(a))
a = () #元组tuple()
print(type(a))
运行结果如下:
<class 'list'>
<class 'dict'> #可见字典和集合都可由{}来定义
#当{}为空时 a为字典
<class 'set'> #集合具有唯一性
#集合所具有的唯一性不是通过内存去判断是否唯一 而是通过哈希值去判断
<class 'tuple'> #元组内的元素不可修改 不可更新
#元组可放入集合中 但列表不可放入集合中是因为元组不可被修改 其哈希值不会改变 具有唯一性 而列表的元素是可变的 哈希值是会改变的
#元组的速度大于列表 其储存方式也不同
切片
切片的通用形式:[a : b : c]
d = 'abcdefghijklmnopqrst'
print(d[::]) #通用式abc都可为0 当abc都为0时 打印所有字符
print(d[1:2:]) #通用式a和b的含义就像是[a,b)包含a 而不包含b 跟C语言的数组的下标一样都是从0开始计数
#就例如[1:2:] 指到就是包含左边第2个值 而不包含右边第3个值
print(d[::2]) #通用式中的c表达的含义更像是一种筛选条件
#例如[::2]表达从第1个值开始 每两个取出来
print(d[::-1]) #当c取-1时 则将字符串倒过来操作
print(d[::-2]) #当c取-2时 则是跟上面的[::-1]例子和[::2]例子相结合
#同样c也可取-3 -4 -5 等等
运行结果如下:
<abcdefghijklmnopqrst>
<b>
<acegikmoqs>
<tsrqponmlkjihgfedcba>
<trpnljhfdb>
编码 解码
编码 和 解码是相对应的一块 我们可以使用encode()进行编码
a = '中国加油' #编码主要分为四大块 gb2312 GBK GB18030 和 UTF—8
#最开始的是gb2312 GBK是gb2312的‘升级’ 能容纳更多的符号 汉字在GBK中占2个字节
#GB18030就更加全面了
#接着一个叫‘ISO’的组织看不下去了 就开发了UNICODE 这种编码十分强大 几乎包含了市面上所有的字符 UNICODE在网络传输 于是就有了两种标准 UTF-8 和 UTF-16 分别是8位传输和16位传输 汉字在UTF-8中占3个字节
str1 = a.encode('gb2312')
str2 = a.encode('GBK')
str3 = a.encode('GB18030')
str4 = a.encode('UTF-8')
print(str1)
print(str2)
print(str3)
print(str4)
运行结果如下:
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xe4\xb8\xad\xe5\x9b\xbd\xe5\x8a\xa0\xe6\xb2\xb9'
同样我们也可以使用decode()进行解码
a = '中国加油'
str1 = a.encode('gb2312')
str2 = a.encode('GBK')
str3 = a.encode('GB18030')
str4 = a.encode('UTF-8')
print(str1)
print(str2)
print(str3)
print(str4)
u1 = str1.decode('gb2312') #需要注意的是编译和解码需要一一对应 如果不是对应的则会报错
u2 = str2.decode('GBK')
u3 = str3.decode('GB18030')
u4 = str4.decode('UTF-8')
print(u1)
print(u2)
print(u3)
print(u4)
运行结果如下:
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xd6\xd0\xb9\xfa\xbc\xd3\xd3\xcd'
b'\xe4\xb8\xad\xe5\x9b\xbd\xe5\x8a\xa0\xe6\xb2\xb9'
中国加油
中国加油
中国加油
中国加油
基本函数
count()#计算字符串中某个元素出现的个数
len()#可用于计算整个字符串的长度
startwith() #可判断开头是否是期望的字符 返回值为布尔型
#同时也是支持切片的 例如 str = 'ABCDEFGHIJK'
# str[::].startwith('AB')
endwith() #可判断结尾是否是期望的字符 返回值为布尔型
split() #将字符串以一个符号进行分割 返回出一个列表
#如:str = ‘1234.56890.65445’
# str.split('.') 以.号进行分割 分割的结果会是 ['1234', '56890', '65445']
rsplit() #与splist类似 区别在于rsplit是从后面开始进行切割 而且可以指定参数切多少次
如果对你有帮助就点个赞叭~ 哪里有错误多多希望可以评论告诉我 谢谢