第七天

放肆的年华 提交于 2020-02-22 11:54:59

基础数据类型补充

首字母大写

s1=skdlasd

print(s1.capitalize())

大小写反转

s1.swapcase()

每个单词首字母大写

msg= hi tai 3bai

msg.title()

居中

s1.center(20) 中间填长度

s1.center(20,"") 缺的 用 "* " 填充

查找在字符串的顺序

find:通过元素找索引 找到第一个就返回 找不到就返回-1

s1="barry"

print(s1.find("a")) #1

print(s1.find("r")) #2

print(s1.find("c")) # -1

index:通过元素找索引,找到第一个就返回 找不到就报错

l1,index("大壮")

元组的特例

元组只有一个元素,并且没有逗号, 那么他就不是元组,

他与该元素数据类型一致

tul=(2) #int

tul=(2,) #元组

计数

count 计算元素出现次数

tu=(1,2222,333,333,2,2,2,2,)

print(tu.count(3)) #4

排序

sort

l1=[5,4,3,2,8,9,10]

l1.sort() # 默认从小到大

l1.sort(reverse=True) #默认从大到小

l1.reverse() 反转列表

列表相加

l1=[1,2,3]

l2=[4,5,6]

print(l1+l2)

[1,2,3,4,5,6]

列表乘数字

l1=[1,2,3]

print(l1*3)

[1,2,3,1,2,3,1,2,3]

按照奇数索引删除列表

l1=[11,22,33,44,55]

最简单的一种

del l1[1::2]

print(l1)

remove

先把奇数的单独摘出来 成一个列表

然后循环这个列表

v1.remove(i)

倒序法删除元素

for index range(len(l1)-1,-1,-1)

​ if index %2==1:

​ print(index)

思维置换

l2=[]

for index in range(len(l1)

​ if index %2==0:

​ l2.append(l1[index])

print(l2)

字典的补充

dic={"name":"太白","age":18}

dic.update(hobby="运动",height="175") #添加方式1

dic.update(name="太白金星") #更改键值对

dic.update([(1,"a"),(2,"b")]) #添加方式2 面试会考

dic1={"name":"jin","age":18,"sex":"male"}

dic2={"name":"alex","weight":75}

dic1.update(dic2) #更新 有则覆盖 无则添加

fromkeys

dic = dict.fromkeys("可迭代对象",共用的键值)

dic = dict.fromkeys("abc",100)

{"a":100,"b":100,"c":100}


dic = dict.fromkeys([1,2,3],"alex")

{1:"alex",2:"alex",3:"alex"}


dic = dict.fromkeys([1,2,3],[])

{1:[],2:[],3:[]}

dic[1].append(666)

print(dic1)


所有数据都可以转换成bool

0 "" () [] {} set() none #7种 转换成bool 是False

分类

直接访问

数字

顺序访问(序列访问)

字符串 列表 元组 #先找第一个门,然后一直找 找到这个门 敲门

key值访问(映射类)

字典 #直接敲门

编码的进阶

ascii

中文英文特殊符号 1字符

gbk

汉字 2字符 ascii中的 1字符 中文英文特殊符号

unicode

全是4字节

utf-8

ascii中的字符 1字节

中文 3字节

  1. 不同密码本之间不能互相识别

  2. 数据在内存中全部是Unicode编码的

    但是当你用于网络传输或者存储到硬盘中必须是非unicode 编码(utf-8,gbk) 省流量

bytes

内存中编码方式:非unicode

b=b"hello"

b.upper() 变大写


s1="中国"
b=b'\xe4\xb8\xad\xe5\x9b\xbd'

英文

content:"hello"

​ 内存中编码方式: unicode

​ 表现形式: "hello"

bytes:

​ 内存中编码方式:非unicode

​ b=b"hello"

​ b.upper() 变大写

中文

content:"中国"

​ 内存中编码方式: unicode

​ 表现形式: "中国"

bytes:

​ 内存中编码方式:非unicode #utf-8

​ 表现形式:b=b'\xe4\xb8\xad\xe5\x9b\xbd'

​ b.upper() 变大写

str----> bytes

为什么转化


s1="中国"

b1=s1.encode('utf-8') #编码

print(b1,type(b1))


b1=b'\xe4\xb8\xad\xe5\x9b\xbd'

s2=b1.decode("utf-8") #解码

print(s2)

gbk--->utf-8

b1.decode("utf-8")

b1.encode("gbk")

今日总结

数据类型的补充 list (sort reverse 列表的相加 乘 循环的问题)

dict(update循环问题)

编码的进阶:bytes 为什么存在

  • bytes 为什么存在

  • str--->bytes (unicode---->非unicode)

  • gbk<---->utf-8

    ​ 先解码 decode 成 unicode

    再编码成 encode 成 utf-8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!