day07
数据类型补充
str
- 首字母大写:capitalize()
name = 'alex'
name1 = name.capitalize()
print(name1)
- 每个单词首字母大写:title()
name = 'alex wusir'
print(name.title())
- 大小写反转:swapcase()
name = "Alex"
print(name.swapcase())
- 居中(填充):center(总占位数,填充内容)
name = 'alex'
print(name.center(20))
name = 'alex'
print(name.center(20,'-'))
- -09查找:find(内容) 从左向右只查一个,返回索引位置,没有就返回-1
index(内容):从左向右只查一个,返回索引位置,查找不存在的就报错
name = "alelx"
print(name.find("b")) #find查找不存在的返回-1
print(name.index("b")) #index查找不存在的就报错
- 拼接:'符号'.join()
name = "al3x"
print("_".join(name)) ***
- 格式化:1)%s %d 、2)f 、3)name.format()
{}配合format(添加内容个数与{}个数对应)
{数字}配合format(内容),按照索引值
{字母}配合format(字母 = ’内容‘) 按照关键字进行填充
# 1.%s
# 2.f
# 3.name.format()
# name = "alex{},{},{}"
# print(name.format(1,2,3)) # 按照顺序位置进行填充
# name = "alex{2},{0},{1}"
# print(name.format("a","b","c")) # 按照索引值进行填充
# name = "alex{a},{b},{c}"
# print(name.format(a=1,c=11,b=67)) # 按照关键字进行填充
-*字符串都会开辟一个新空间
# + * 开辟新的空间
# name = "alex"
# name1 = "wusir"
# print(id(name))
# print(id(name1))
# print(id(name + name1))
list
定义方式:
list('123')
其他方法:
排序:sort() 默认升序,如果是中文,以码来排序
降序:sort(reverse = True)
lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
lst.sort()
print(lst)
lst = ["你好","我好"]
lst.sort()
print(lst)
lst.sort(reverse=True) # 降序
反转:reverse() 或者 lst[::-1]
# lst = [1,2,3,4453,5,6,7]
# print(lst[::-1])
# lst.reverse() # 反转
# print(lst)
# lst = [1,2,3,4,5123,21345,231123,4,1235,234,123]
# lst.sort()
# lst.reverse()
# print(lst)
查找: index
面试题:
# lst = [[]]
# new_lst = lst * 5
# new_lst[0].append(10)
# print(new_lst)
# lst = [1,[]]
# new_lst = lst * 5
# new_lst[0] = 10
# print(new_lst)
# lst = [1,[]]
# new_lst = lst * 5
# new_lst[1] = 10
# print(new_lst)
把一个列表追加到另外一个列表中
+*元素都是共用的
方式一:
lst.extend(lst1)
print(lst)
方式二:
print(lst+lst1)
new_lst = lst * 5
print(id(new_lst[0]),id(new_lst[0]))
# lst = [[]]
# new_lst = lst * 5
# new_lst[0].append(10)
# print(new_lst)
tuple
(1,)也是元组
# tu = (1,) # (1,)是元组# print(type(tu))
(1) 括号里数据本身的类型
# tu = ("12") # 数据类型是()中数据本身
# print(type(tu))
元组 + * 不可变共用,可变也共用
dict
定义字典:
dict(key = 1,key2 = 2)
随机删除:popitem
返回的是被删除的键值对,以元组的形式:(键,值),python3.6以上默认删除最后一个
# dic = {"key":1,"key2":2,"key3":56}
# print(dic.popitem()) # 返回的是被删除的键值对(键,值)
# print(dic)
# python36 默认删除最后一个
fromkeys("可迭代的键",共用的值)
# dic = {}
# dic.fromkeys("123",[23]) # 批量添加键值对{"1":[23],"2":[23],"3":[23]}
# print(dic)
# dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用
# dic["1"] = 18
# print(dic)
set
set() ——空集合
{} ——空字典
定义集合:
set('alex') #迭代添加
bool: False
数字:0
字符串:""
列表:[]
元组:()
字典:{}
集合:set()
其他:None
数据类型之间的转换
# list tuple
lst = ['1', '2', '3']
tu = tuple(lst)
print(tu)
# tuple list
tu = ('1', '2', '3')
lst = list(tu)
print(lst)
————————————————————————————————
# str list
name = "alex"
print(name.split())
# list str
lst = ["1","2","3"]
print(''.join(lst))
—————————————————————————————————
# dict -- str
dic = {"1":2}
print(str(dic),type(str(dic)))
str -- dict
# print(dict("{1:1}")) # 报错
—————————————————————————————————
# set - list
s = {1,2,3,4}
print(list(s))
# list - set
lst = [1, 2, 3, 4]
print(set(lst))
python数据类型:
# python数据类型:
# 可变:
# list ,dict ,set
# 不可变:
# int bool str tuple
# 有序:
# list,tuple,str,int,bool
# 无序:
# dict,set
# 取值方式:
# 索引: str list tuple
# 直接: set ,int ,bool
# 键: dict
坑
lst = [1,2]
for i in lst:
lst.append(3)
print(lst) # 死循环
列表删除——从后向前删除
错误事例:
lst = [1,2,3,4]
for i in lst:
lst.pop()
print(lst) # [1,2]
错误事例:
lst = [1,2,3,4]
for i in lst:
lst.pop(0)
print(lst) # [3,4]
错误事例:
lst = [1,2,3,4]
for i in lst:
lst.remove(i)
print(lst) # [2,4]
成功事例:
lst = [1,2,3,4,6]
for i in range(len(lst)):
lst.pop()
print(lst)
lst = [1,2,3,4,6]
for i in range(len(lst)-1,-1,-1):
del lst[i]
print(lst)
lst = [1,2,3,4,6]
for i in range(len(lst)):
del lst[-1]
print(lst)
# 创建一个新的列表,删除旧的列表
lst = [1,2,3,4,5,6]
lst1 = lst.copy()
for i in lst1:
lst.remove(i)
print(lst)
删除字典的坑
字典迭代的时候不能增加不能删除
集合和字典都是迭代的时候不能增加不能删除
dic = dict.fromkeys("12345",1)
dic1 = dic.copy()
for i in dic1:
dic.pop(i)
print(dic) # 报错
dic = dict.fromkeys("12345",1)
print(dic)
for i in dic:
dic[222] = 666
print(dic) # 报错
dic = dict.fromkeys("12345",1)
dic1 = dic.copy()
for i in dic1:
dic.pop(i)
print(dic)
二次编码
密码本:
ascii ——没有中文
gbk ——英文8b 1B 中文16b 2B
unicode ——英文16b 2B 中文 32b 4B
utf-8 —— 英文8b 1B 欧洲16b 2B 亚洲24b 3B
# name = "你好啊"
# s1 = name.encode("utf-8") # 编码 9
# s2 = name.encode("gbk") # 编码 6
# s2 = s1.decode("utf-8") # 解码
# print(s2.encode("gbk"))
以什么编码集(密码本)进行编码就要用是什么编码集(密码本)解码