zoukankan      html  css  js  c++  java
  • 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"))
    
    # 以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码
    
    
    
    
  • 相关阅读:
    类的加载顺序
    自定义形状类
    java的参数传递
    复数相加+equels、hashcode、clone<二>
    复数相加+equels、hashcode、clone<一>
    命令行程序
    计算阶乘
    控制程序的流程
    java运算符
    强制类型转换细节解析
  • 原文地址:https://www.cnblogs.com/zhangshan33/p/11178086.html
Copyright © 2011-2022 走看看