python碎片式学习(一)

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是从后面开始进行切割  而且可以指定参数切多少次

如果对你有帮助就点个赞叭~ 哪里有错误多多希望可以评论告诉我 谢谢

猜你喜欢

转载自blog.csdn.net/weixin_48367535/article/details/108140973
今日推荐