python_0基础开始_day07

第七节

1,基础数据类型补充

  • str:

    • print(str.capitalize()) —— 首字母大写

    • print(str.title()) —— 每个单词的首字母大写

    • print(str.swapcase()) —— 大小写转换,字符串中大变小,小变大

    • print(str.center(大于str总数的数字,"分割符号")) —— 居中,填充

    • print(str.fimd("元素")) —— 查找 通过元素查找索引,查找不到时返回-1

      print(str.index("元素")) —— 查找 通过元素查找索引,查找不到时就报错

    • print("分割符".join(list)) —— 拼接,将列表转换成字符串

    • 字符串进行加操作,乘操作都是开辟新的空间

  • list:

    • print(list("1237654")) ——列表的定义

    • print(list.index("元素")) —— 通过元素查找索引

    • list.sort() —— 排序,默认是升序

    • list.sort(reverse=True) —— 降序,将升序反转

      list.sort()

      list.reverse() ——人工降序

    • list.reverse() —— 将源数据进行反转

      lst = [1,23,4,5,7,8,9]
      lst.reverse()
      print(lst)               # 将源数据进行反转

      lst1 = lst[::-1]
      print(lst)
      print(lst1)              # 不修改源数据进行反转
    • 列表在进行乘法的时候,元素是共用的

  • tuple:

    # 面试:
    tu = (1)
    tu1 = ("alex")
    tu2 = (1,)# 元组
    tu3 = ()# 元组

    tu4 = (12,3,4) + (4,5,3,4)
    print(tu4)
    # (12, 3, 4, 4, 5, 3, 4)
    tu5 = (1,[]) * 3
    print(tu5)
    # (1, [], 1, [], 1, [])
    tu5[-1].append(10)
    print(tu5)
    # (1, [10], 1, [10], 1, [10])
  • dict

    • print(dic.popitem()) —— 随机删除,python3.6版删除最后一个键值对

      popitem返回的是被删除的键值对

      # 面试题:
      dic = {}
      dic.fromkeys("abc",[])
      print(dic)
      # {}
      print(dic.fromkeys("abc",[]))
      # 批量创建键值对 {"a":[],"b":[],"c":[]}"a":[],"b":[],"c":[]}
      dic = dic.fromkeys("abc",[]) # 给批量这个赋值给dic
      print(dic)
      # {"a":[],"b":[],"c":[]}"a":[],"b":[],"c":[]}
      dic["b"] = 11
      dic["a"].append(10)
      print(dic)
      # {'a': [10], 'b': 11, 'c': [10]}
    • fromkeys 第一个参数必须是可迭代对象,会将可迭代对象进行迭代,成为字典的键,第二个参数是值(这个值是共用的)

    • fromkeys 共用的值是可变数据类型就会有坑,不可变数据类型就没事

  • 基础数据利类型总结:可变,不可变,有序,无序

    • 可变:

      • list

      • dict

      • set

    • 不可变:

      • int

      • str

      • tuple

      • bool

    • 有序,可索引:

      • str

      • list

      • tuple

    • 无序,不可索引:

      • set

      • dict

  • 数据类型转换

    int <——> str

    s = str(int),没有条件

    i = int(str),转换的字符串必须是数字

    int <——> bool

    非0就是True,0是False

    转换数字:F = 0,T = 1

    str <——> bool

    Fasle = "" , True = " "

    str = "False" ,str = "True"

    list <——> tuble

    list = list(tuple)

    tuple = tuple(list)

    list <——> set

    list = list(set)

    set = set(list)

    tuple <——> set

    tuple = tuple(set)

    set = set(tuple)

    以下非常重要:

    list ——> str

    lst = ["1","2","3"]
    print("".join(lst))

    str ——> list

    s = "alex wusir 太白"
    print(s.split())

2,可能会遇到的坑

  • 死循环
    lst = [1,2,3]
    for i in lst:
       lst.append(4)
    print(lst)
    # 打印不出来,lst = [1,2,3,4,4,4,...]无限4
  • lst = [11,22,33,44]
    for i in lst:
       lst.remove(i)
    print(lst)
    # [22,44]

    for i in lst:
       del lst[-1]
    print(lst)
    # [11,22]

    for i in range(len(lst)):
       del lst[-1] # or lst.pop()
    print(lst)
    # []

    lst1 = lst[:]
    for i in lst1:
       lst.remove(i)
    print(lst)
    # []

    # 使用for循环清空列表元素内容
    # 1.从后向前删除, 2.创建一个新的容器,循环新的容器删除旧的容器内容
  • # 面试题
    lst = [1,[2]]
    lst[1] = lst
    print(lst)
    # 答案: [1, [...]]
  • # 字典和集合:
    dic = {"key":1,"key1":2}

    for i in dic:
       if i == "key1":
           dic[i] = dic[i] + 8  # dic[i] = 10
       else:
           print("没有这个键!")
    print(dic)
    # 字典和集合在遍历(循环)时不能修改原来的大小(字典的长度),可以进行修改值
    s = {1,2,3,4,5,6}
    for i in s:
       s.pop()
    print(s)
    # 会报错,不能改变集合的长度

3,二次编码

  • .encode(编码格式) —— 编码

  • .decode(编码格式) —— 解码

    注意,用什么编码就要用什么解码,网络传输一定是字节

    python2,ascii

    python3,unicode

你可能感兴趣的:(python_0基础开始_day07)