python 第七章 数据类型补充+遇到的坑+二次编码

python 第七章

数据类型方法补充

# str 字符串:
# str 常用方法共计19个

# 1、首字母大写:capitalize
name = "alex"
name1 = name.capitalize()
print(name1)
# 输出Alex

# 2、每个单词首字母大写:title
name = "alex wusir"
print(name.title())
# 输出 Alex Wusir

# 3、大小写反转:swpcase
name = "alex"
print(name.swapcase())
# 输出 ALEX

# 4、填充居中:center
name = "alex"
print(name.center(20,"-"))# 输出20个-,alex占中间4个占位
# 输出--------alex--------

# 6、查找:
# find("元素")
# 从左向右,只查一个
# find查找不存在的返回-1
name = "alex"
print(name.find("x"))
# 输出 3
print(name.find("b"))
# 输出 -1

# index("元素")
# index查找不到报错
name = "alex"
print(name.index("x"))
# 输出 3
#print(name.index("d"))
# 输出substring not found


# 7、拼接:join(可迭代对象)
name = "alex"
print("_".join(name))
# 输出 a_l_e_x

# 8、格式化
# $s
# f
# name = "alex"
# name.format()
# {},{}按照顺序位置进行填充
name = "Alex{},{},{}"
print(name.format(1,2,3))
# 输出Alex1,2,3

# {2},{0},{1}按照索引位置值进行填充

name = "Alex{2},{0},{1}"
print(name.format("a","b","c"))
# 输出Alexc,a,b

# a=1,按照关键字进行填充
name = "Alex{a},{b},{c}"
print(name.format(a=1,c=11,b=67))
# 输出Alex1,67,11



# list:列表
# list 是一个容器,修改后还要看此容器
# 1、定义方式:
# list("可迭代")
print(list("123"))
# 输出['1', '2', '3']

# 2、从小到大排序: lst.sprt()
# lst.sprt() 排序,默认升序
lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
lst.sort()
print(lst)
# 输出[1, 2, 23, 23, 36, 65, 234, 421, 435, 534, 4231, 213421]

lst = ["你好","我好","大家好"]
lst.sort()
print(lst)
# 输出['你好', '大家好', '我好']

# 3、反转:lst.reverse()和[::-1]

# lst.reverse()
lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
lst.reverse()
print(lst)
# [::-1]
lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
print(lst[::-1])
# 输出[65, 534, 4231, 421, 213421, 23, 36, 435, 234, 23, 2, 1]

# 4、降序
lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
lst.sort(reverse=True)# 先反转,再排序
print(lst)

lst = [1,2,3,4,5123,21345,231123,4,1235,234,123]
lst.sort()# 先排序
lst.reverse()# 再反转
print(lst)
# 输出[213421, 4231, 534, 435, 421, 234, 65, 36, 23, 23, 2, 1]

# 5、列表可以用+和*

# + 方法
# 一行输出lst和lst1
# 方式一
lst = [1,2,3,4,5]
lst1 = [6,7,8,9]
lst.append(lst1)# 追加
print(lst)
# 输出 [1, 2, 3, 4, 5, [6, 7, 8, 9]]
# 方式二
print(lst+lst1)# 放在一个列表中
# 输出[1, 2, 3, 4, 5, 6, 7, 8, 9]


# *
# *5,乘出来是共用的
lst = [1,2,3]
new_lst =lst * 5
print(new_lst)
# 输出[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

# * 添加
lst = [[]]
new_lst =lst * 5
new_lst[0].append(10) # 添加第一个元素,后面每次都添加
print(new_lst)
# 输出[[10], [10], [10], [10], [10]]

# * 修改
lst = [1,[]]
new_lst = lst * 5
new_lst[1] = 10 #修改第二个元素的值为10,只对第一次生效
print(new_lst)
# 输出[1, 10, 1, [], 1, [], 1, [], 1, []]



# 元组:tuple(,)
tu = (12)
# 数据类型是()中数据本身
print(type(tu))
# 输出 int型

tu = ("12",)
print(type(tu))
# 输出 tuple型

# 加,才是元组型
# 可 + * 不可变共用,可变也共用


# 字典:dict{"":"","":""}
# 定义一个字典:
# k1=1, k2=2
print(dict(k1=1,k2=2))
# 输出 {'k1': 1, 'k2': 2}

# 空字典:{}

# 随机删除:popitems
# 默认删除最后一个
dic = {"key":1,"key2":2,"key3":56}
print(dic.popitem())# 有返回值,返回的是被删除的键值对("键,值")
# 输出('key3', 56)
print(dic)
# 输出 {'key': 1, 'key2': 2}


# 添加:
# fromkeys 批量添加键值对
dic = {}
dic1 = dic.fromkeys("123",[23])
# 批量添加键值对{"1":[23],"2":[23],"3":[23]}
print(dic1)
# 输出{"1":[23],"2":[23],"3":[23]}

# 错误示范
dic = {}
dic.fromkeys("123",[23])
print(dic1)
# 输出{},需要将dic 修改的值重新存储到一个字典中

dic = dict.fromkeys("123456789",1)
# 批量添加键值对"键是可迭代对象",值 -- 会被共用
dic["1"] =18
print(dic)
# 输出
# {'1': 18, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1, '8': 1, '9': 1}

# 集合:set(,)
# 定义一个集合
# set("") # 迭代添加
# 空字典set()
#
#
# 布尔值:bool
#
# False:
# 数字:0
# 字符串:""
# 列表:[]
# 元组:()
# 字典:{}
# 集合:set()
# 其他:None
# 机智:3 > 10

# 数据类型之间的转换
# list tuple
# tuple list
# 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)))
# print(dict("{1:1}"))
# set - list
# list - set


# python 数据类型:
# 可变:
# list dict set
# 不可变:
# str int bool tuple
# 有序:
# set int bool list tuple
# 无序:
# dict set
#
# 查找取值方式:
# 直接输出:(可迭代)
# str list tuple
# 索引:(不可迭代)
# set int bool
# 键:(可迭代)
# dict

# + * 会开辟新的空间,内容地址发生变化
name = "alex"
name1 = "wusir"
print(id(name))
print(id(name1))
print(id(name + name1))

二次编码

# 密码本:
# 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"))

# 以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码



posted @ 2019-07-12 19:49  张珊33  阅读(140)  评论(0编辑  收藏  举报