码迷,mamicode.com
首页 > 编程语言 > 详细

python基础04/基础数据类型补充/以后会遇到的坑/二次编码

时间:2019-07-14 13:27:47      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:括号   有序   格式   split   split()   utf-8   元组(tuple)   数据   报错   

python基础04

内容大纲

  1. 基础数据类型补充
  2. 以后会遇到的坑
  3. 二次编码

1.基础数据类型补充

1.1 字符串(str)

str: 不可变
1.1 首字母大写:
# name = "alex"
# name1 = name.capitalize()
# print(name1)

1.2 每个单词首字母大写
# name = "alex wusir"
# print(name.title())

1.3 大小写反转
# name = "Alex"
# print(name.swapcase())

1.4 居中 -- 填充
# name = "alex"
# print(name.center(20,"-"))   #总共20个位置,将name放在中间

1.5 查找 从左向右 只查找一个
# name = "alelx"
# print(name.find("b"))  #find查找不存在的返回-1
# print(name.index("b"))   #index查找不存在的就报错

1.6 拼接
# name = "al3x"
# print("_".join(name))  ***

1.7 格式化
# 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))

1.2 列表(list)

list:
定义方式:
  # list("123")
其他方法:

 排序 (升序)    
# 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) 
# print(lst)

反转
# 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)

面试题:
# 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)

1.3 元组(tuple)

tuple:
# tu = ("12")  # 数据类型是()中数据本身
# print(type(tu))

# tu = (1,)   # (1,)是元组
# print(type(tu))

# 元组 + * 不可变共用,可变也共用

1.4 字典(dict)

dict:
# 定义一个字典:
# print(dict(k=1,k1=2))

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

 dic = {}
 dic.fromkeys("123",[23]) # 批量添加键值对{"1":[23],"2":[23],"3":[23]}
 print(dic)
 结果:{}     注意:必须给dic.fromkeys("123",[23])重新赋值

# dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用
# dic["1"] = 18
# print(dic)

1.5 集合(set)

set:
    # set() -- 空集合
    # {} -- 空字典
    # 定义集合:
    # set("alex")  # 迭代添加的
# print(set("alex"))

1.6 布尔值(bool)

bool: False
# 数字: 0
# 字符串: ""
# 列表:[]
# 元组:()
# 字典:{}
# 集合: set()
# 其他: None
# a = None
# print(bool(a))

1.7 数据类型之间的转换

# 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

1.8 Python的数据类型整理

python数据类型:
# 可变:
# list ,dict ,set
# 不可变:
# int bool str tuple
# 有序:
# list,tuple,str,int,bool
# 无序:
# dict,set
# 取值方式:
# 索引: str list tuple
# 直接: set ,int ,bool
#   键: dict 

2.以后会遇到的坑

2.1 删除列表的坑

# 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)

# lst = [1,2,3,4]   (错误)
# for i in lst:
#     lst.pop(0)
# print(lst)

# lst = [1,2,3,4]   (错误)
# for i in lst:
#     lst.remove(i)
# print(lst)

成功删除的方式:
# 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)

2.2 删除字典的坑

删除字典的坑

# dic = dict.fromkeys("12345",1)  # 字典的迭代的时候改变了原来的大小(不能加不能删)
# for i in dic:
#     dic[i] = "123"
# print(dic)

# dic = dict.fromkeys("12345",1)
# dic1 = dic.copy()
# for i in dic1:
#     dic.pop(i)
# print(dic)

# 集合和字典都是迭代的时候不能改变原来的大小

3.二次编码

密码本:
# 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
print(s1)
# s2 = name.encode("gbk") # 编码  6
# s2 = s1.decode("utf-8") # 解码
# print(s2.encode("gbk"))

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

4. 今日总结

1. 编码解码
# 编码:将文字转换成字节形式  encode
# 解码:将字节转换成文字形式  decode

2.基础数据类型补充:
 str:
    # 首字母大写
    # 每个单词首字母大写
    # 大小写反转
    # 居中 -- 填充
    # 查找:find index
    # 拼接
    # 格式化: name.format
 list:
    # 排序(默认是升序) 降序sort(reverse=True)
    # 反转
    # 查找 index
    # 统计 count
    # + * 元素都是共用的

    # 面试题:
 tuple:
    # (1,)# 元组
    # (1) # 括号里数据本身
    # + *
 dict:
    # popitem
    # fromkeys("可迭代的键",共用的值)   -- 坑
    # dict(key = 1,key2 =2)
 set:
    # set() -- 空集合
    # set("alex") # 迭代添加
 3.坑

    # 列表删除  -- 从后向前删除
    # 创建一个新的列表,删除旧的列表

    # 字典删除  -- 循环的时候不能改变源数据的大小 (可以改变值)
    # 创建一个新的字典,删除旧的字典

    # 集合删除  -- 循环的时候不能改变源数据的大小

类型转换:
    # list -- str  join
    # str -- list  split

python基础04/基础数据类型补充/以后会遇到的坑/二次编码

标签:括号   有序   格式   split   split()   utf-8   元组(tuple)   数据   报错   

原文地址:https://www.cnblogs.com/liubing8/p/11183796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!