• python基础(二)


    基本数据类型

    1.   int   数字

    a = 10
    print(a,type(a))

    答案:  10   int
    

    1.1 数字十进制转出二进制

    a = 53   转换成二进制就是:   0011 0101

    image

    1.2 二进转十进制

    0100 1010
    
    num = 1* 2**1 + 1*2**3 + 1* 2**6
    
    num = 74
    


    进制转换在线工具:https://tool.lu/hexconvert/

    2、布尔值 bool

    True  False

    3、字符串  str  

    双引号或单引号引起来的都是字符串

    索引、切片:
    course_name = "Python从入门到精通"
    # 取索引为0的值
    print(course_name[0])
    # 取索引0到6的值,  注意:顾头不顾尾
    print(course_name[0:6])
    # 取索引0到6的值,步长为2
    print(course_name[0:6:2])
    # 取最后到-5的位置,步长为-1
    print(course_name[-1:-5:-1])
    # 取-6到最后的值
    print(course_name[-6:])
    
    答案:
    P
    Python
    Pto
    通精到门
    从入门到精通

    字符串的常用方法

    # upper lower
    s1 = "DengHuoQiTan"
    s2 = s1.upper()
    print(s2)
    s3 = s1.lower()
    print(s3)
    
    答案:	DENGHUOQITAN
    	denghuoqitan
    
    # startswith   endswith
    s1 = "BaoboJack_alex"
    s2 = s1.startswith("B")
    print(s2)                         # True
    s3 = s1.endswith('_')
    print(s3)                         # False
    s4 = s1.endswith("alex")
    print(s4)                         # True
    s4 = s1.startswith('bo',4,8)
    print(s4)                        # False
    s5 = s1.startswith('bo',3,8)
    print(s5)                        # True
    
    
    # replace
    s1 = "bob是一个高级工程师,bob喜欢打球,bob很man"
    s2 = s1.replace("bob","job")
    print(s2)             # "job是一个高级工程师,job喜欢打球,job很man"
    s3 = s1.replace('bob','job',2)
    print(s3)             # "job是一个高级工程师,job喜欢打球,bob很man"
    
    
    # split
    names = "job bob alex"
    # split默认以空格分隔,可以指定分隔符
    names1 = names.split()
    print(names1)           # ['job', 'bob', 'alex']      列表
    
    names = "job:bob:alex"
    names2 = names.split(":")
    print(names2)           # ['job', 'bob', 'alex']      列表
    
    names = ":job:bob:alex"
    names3 = names.split(":")
    print(names3)           # ['', 'job', 'bob', 'alex']   列表
    


    # 用split做的计算器
    import re
    content = input("请输入内容:")
    num_list = re.split(" |+|-|*|/",content)
    new_list= []
    for num in num_list:
    if num:
    new_list.append(num)
    print(new_list)
    for i in new_list:
    i = i.replace(' ','')
    if i.isdecimal():
    continue
    else:
    print("%s不是数字"%i)
    break
    else:
    print(eval(content.replace(' ','')))


    # join
    # 可以把任何的可以迭代的对象连接起来,前提是可迭代的对象不能是数字
    s1 = "jobissb"
    s2 = "_".join(s1)
    print(s2,type(s2))        # j_o_b_i_s_s_b <class 'str'>
    
    i1 = ["aa",'bb',"cc"]
    i1_str = "+".join(i1)
    print(i1_str)             # aa+bb+cc
    
    i2 = ["aa",'bb',22]           # 此处元素不能是数字
    i2_str = "+".join(i2)
    print(i2_str)
    
    '''
    报错:
     File "F:/python_project/day2/s2 str.py", line 55, in <module>
        i2_str = "+".join(i2)
    TypeError: sequence item 2: expected str instance, int found
    '''
    

    # strip     去除空格 、	 、
    
    s1 = " alex bob "
    s2 = s1.strip()
    print(s2) # alex bob 中间的空格没有去除

    s3 = s1.replace(" ","")
    print(s3) # alexbob 所有的空格都去除


    # count
    s1 = "kdjfdasklfjsaafdafafde"
    num = s1.count("k")
    print(num) # 2 类型:int


    # format
    # 第一种用法
    a = "我的名字叫{},今年{}岁,我来自{}".format("周润发",28,"中国")
    print(a) # 我的名字叫周润发,今年28岁,我来自中国
    # 第二种用法
    b = "我的名字叫{0},今年{1}岁,我来自{2},我依然叫{0}".format("周润发",28,"中国")
    print(b) # 我的名字叫周润发,今年28岁,我来自中国,我依然叫周润发
    # 第三种用法
    c = "我的名字叫{name},今年{age}岁,我来自{country}".format(age=18,country="中国",name="江鱼儿")
    print(c)


    # is系列
    name = "alex123"
    # isalpha 判断是否全部只有字母
    print(name.isalpha()) # False
    # isalnum 判断是否是有字母和数字组成
    print(name.isalnum()) # True
    # isdecimal 判断是否为10进制
    print(name.isdecimal()) # False

    # 例如
    num = input("请输入数字:")
    if num.isdecimal():
    print(num)
    else:
    print("您输入有误!!!")

    答案:

    请输入数字:32
                         32

    练习题:自动算加减法算式

    content = input("请输入算式:")
    num_list = []
    i = 0
    for i in content.split("+"):
        if "-" not in i:
            num_list.append("+%s"%i)
        else:
            for index,j in enumerate(i.split("-")):
                if index == 0:
                    num_list.append("+%s"%j)
                else:
                    num_list.append("-%s"%j)
    print(num_list)
    sum = 0
    for num in num_list:
        if num.startswith("+"):
            num_zheng = num.replace("+","")
            if num_zheng.isdecimal():
                sum += int(num_zheng)
        if num.startswith("-"):
            num_fu = num.replace("-","")
            if num_fu.isdecimal():
                sum -= int(num_fu)
    print(sum)

    答案:

    请输入算式:20+8-60+20+80
    ['+20', '+8', '-60', '+20', '+80']
    68

    补充:

    # capitalize
    # s1 = "abcd"
    # print(s1.capitalize())              # Abcd    首字母大写

    # title
    s4 = "this is car"
    print(s4.title()) # This Is Car 单个单词首字母大写 # swapcase # s2 = "abcdGDse" # print(s2.swapcase()) # ABCDgdSE 大小写转换 # center # ret = s2.center(30,"_") # print(ret) # ___________abcdGDse___________ 长度30并居中,其他位置用 _ 填充 # count # s3 = "abcdGDaseabcd" # print(s3.count('a')) # 3 计算字符a在s3出现的次数 # find index # print(s3.find('d')) # 3 查询字符d在s3的索引位置 # print(s3.find('d',4,13)) # 12 查询字符d在s3中4-13中的哪个位置 # print(s3.find('o')) # -1 找不到返回-1 # index # print(s3.index('d')) # 3 查询字符d在s3的索引位置 # print(s3.index('d',4,13)) # 12 查询字符d在s3中4-13中的哪个位置 # print(s3.index('o')) # 报错

    # 总结:find和index几乎一样,不同的是:find找不到返回-1,index找不到会报错

    4、列表  list

    基础知识:

    1. 列表可以承载任意数据类型,存储大量的数据

    2. pyton常用的容器性数据类型

    3. 列表是有序的,可以按照索引切片

    # 索引
    # 切片(顾头不顾尾)
    
    l2 = [1,3,2,"a",4,"b",5,"c"]
    print(l2[:3])
    print(l2[3:6])
    print(l2[1:-2:2])
    print(l2[-3:0:-2])
    
    答案:
    [1, 3, 2]
    ['a', 4, 'b']
    [3, 'a', 'b']
    ['b', 'a', 3]

    # 创建 3种方式




    # 增删改查
    # 增
    # l1 = ["张三","李四","王五"]
    # while 1:
    # name = input("请输入新员工名字(输入'Q'或者'q'退出程序):")
    # if name.upper() == "Q":
    # break
    # l1.append(name)
    # print(l1)


    # insert
    # l1 = ["张三","李四","王五","陆六"]
    # l1.insert(1,"刘麻子")
    # print(l1)

    # extend
    li = ["alex","Wusir","ritian","barry","wenzhou"]
    # 请将列表l2 = [1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现
    l2 = [1,"a",3,4,"heart"]
    li.extend(l2)
    print(li)


    # 删
    # pop
    # l1 = ["张三","李四","王五","陆六"]
    # res = l1.pop(-2)
    # print(res)
    # print(l1)

    # remove
    # l1 = ["张三","李四","王五","陆六"]
    # l1.remove("李四")
    # print(l1)


    # clear
    # l1 = ["张三","李四","王五","陆六"]
    # l1.clear()
    # print(l1)


    # del
    # l1 = ["张三","李四","王五","陆六"]
    # del l1[::2]
    # print(l1)


    # 改
    # l1 = ["张三","李四","王五","陆六"]
    # l1[0] = "柴七"
    # print(l1)


    # l1 = ["张三","李四","王五","陆六"]
    # l1[1:] = ["alex","wusir"]
    # print(l1)


    # 查 for循环
    l1 = ["张三","李四","王五","陆六"]
    for i in l1:
    print(i)
    答案:

    张三
    李四
    王五
    陆六


    练习题

    li = ["alex","Wusir","ritian","barry","wenzhou"]
    
    # 计算列表的长度
    print(len(li))                     # 5
    # 列表中追加元素“seven”,并输出添加后的列表
    li.append("seven")
    print(li)                          # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 'seven']
    # 请在列表第1个位置插入元素"Tony",并输出添加后的列表
    li.insert(1,"Tony")
    print(li)                            # ['alex', 'Tony', 'Wusir', 'ritian', 'barry', 'wenzhou']
    # 请修改第2个位置的元素为"Kelly",并输出修改后的列表
    li[2] = "Kelly"
    print(li)                              # ['alex', 'Wusir', 'Kelly', 'barry', 'wenzhou']
    # 请将列表l2 = [1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现
    l2 = [1,"a",3,4,"heart"]
    li[5:] = l2
    print(li) # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 1, 'a', 3, 4, 'heart']
    # 请将字符串 s = "qwert" 的每一个元素添加到列表li中,一行代码实现
    s = "qwert"
    li[5:] = s
    print(li) # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 'q', 'w', 'e', 'r', 't']
    # 请删除列表中的元素 "ritian",并输出删除后的元素
    li.remove("ritian")
    print(li) # ['alex', 'Wusir', 'barry', 'wenzhou']
    # # 请删除列表中第2个元素 ,并输出删除的元素和删除后的列表
    pop_val = li.pop(2)
    print(pop_val) # ritian
    print(li) # ['alex', 'Wusir', 'barry', 'wenzhou']
    # 请删除列表中的第2至4个元素 ,并输出删除后的列表
    del li[2:4]
    print(li) # ['alex', 'Wusir', 'wenzhou']




    li = [1,2,"taibai",[1,"alex",3,]]
    # 将li中的"taibai"变成大写并放回原处
    li[2] = li[2].upper()
    print(li) # [1, 2, 'TAIBAI', [1, 'alex', 3]]

    li = [1,2,"taibai",[1,"alex",3,]]
    # 给小列表[1,'alex',3,]追加一个元素,'老男孩教育'
    li[-1].append("老男孩教育")
    print(li) # [1, 2, 'taibai', [1, 'alex', 3, '老男孩教育']]

    li = [1,2,"taibai",[1,"alex",3,]]
    # 将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'
    li[-1][1] = li[-1][1] + "sb"
    print(li) # [1, 2, 'taibai', [1, 'alexsb', 3]]

    补充:

    # count
    # l1 = [2,3,7,8,3,3,3,8,9,2]
    # print(l1.count(3))                # 4  count计算3在l1中出现的次数
    
    # index
    # print(l1.index(8))                # 3   idnex查询8在l1中第一次出现的索引位置
    
    # l2 = [3,5,8,1,3,9,0,7,6]
    # l2.sort()
    # print(l2)          # [0, 1, 3, 3, 5, 6, 7, 8, 9]   sort给l2进行从小到大排序
    
    # l3 = [3,5,8,1,3,9,0,7,6]
    # l3.sort(reverse=True)
    # print(l3)           # [9, 8, 7, 6, 5, 3, 3, 1, 0]    sort里面加个reverse进行从大到小排序
    
    # l4 = [3,5,8,1,3,9,0,7,6]
    # l4.reverse()
    # print(l4)            # [6, 7, 0, 9, 3, 1, 8, 5, 3]     reverse就是把l4的顺序反过来
    
    # 列表与列表相加
    l1 = [1,2,3]
    l2 = [2,3,4,5,6]
    # print(l1+l2)           # [1, 2, 3, 2, 3, 4, 5, 6]       列表与列表相加
    
    # 列表与数字相乘
    l3 = [1,2,3]
    print(l3*5)            # [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

    补充练习题

    #    坑
    # 删除一下列表索引位置是奇数的值
    l1 = [11,22,33,44,55,66]
    # 错误:
    # for i in range(len(l1)-1):
    #     if i % 2 == 1:
    #         l1.pop(i)
    # print(l1)        # [11, 33, 44, 66]     正确答案应该是:[11, 33, 55]    why?
    # 正确:
    
    # 方式1:
    # del l1[1::2]
    # print(l1)          # [11, 33, 55]
    
    # 方式2
    # for i in range(len(l1)-1,-1,-1):
    #     if i % 2 == 1:
    #         l1.pop(i)
    # print(l1)            # [11, 33, 55]
    
    # 方式3:
    new_list = []
    for i in range(len(l1)):
        if i % 2 == 0:
            new_list.append(l1[i])
    print(new_list)


    总结:在循环一个列表时的过程中,如果你要改变列表的大小(增加值,或者删除值),那么结果很可能会出错或者报错。


    5、元祖   tuple

    基础知识:

    只读列表,可以存大量的数据,可以索引,切片(步长)

    只能查,不能增删改(注意:元祖的第一层元素不能而已

    应用:

    # 重要数据,用户名,密码,个人信息,不想让别人改动的一些数据,存在元祖中

    # 元祖的拆包,分别赋值

    a,b = (1,2)
    print(a,b)

    补充:

    # tuple
    # 注意的地方
    tu1 = (2,3,4)
    print(tu1,type(tu1))             # (2, 3, 4) <class 'tuple'>
    
    tu2 = (3)
    print(tu2,type(tu2))             # 3 <class 'int'>
    
    tu2_1 = (3,)
    print(tu2_1,type(tu2_1))         # (3,) <class 'tuple'>
    
    tu3 = ("yu")
    print(tu3,type(tu3))             # yu <class 'str'>
    
    tu4 = ([1,3,5])
    print(tu4,type(tu4))             # [1, 3, 5] <class 'list'>
    
    # 总结:在创建元祖时候,单个元素没有加逗号的话,创建的数据类型就是元素的数据类型,所以在创建元素的时候,如果
    # 是单个元素,都在后面加个逗号
    
    # count
    tu5 = (3,7,8,2,6,8,3,9,8,3)
    print(tu5.count(8))             # 3  count计算8在元祖tu5中出现的次数
    
    # index
    print(tu5.index(9))             # 7   index是查询9在tu5中的第一次出现的索引位置

    6、字典

    字典:查询速度快,数据的关联性强

    1、数据类型分类:

           可变类型:    list  dict set                       (不可哈希数据类型)

           不可变类型:str int  bool  tuple   (可哈希数据)

    2、注意:字典是有key和value键值对组成,字典的key只能是不可变类型并且唯一的,字典的value可以为任何数据类型

    3、字典的创建(有三种方式)

    方式一:
    dic = dict((("name","bob"),("age",18),("sex","")))

    方式二:
    dic = dict({"name":"job","age":18,"sex":"男"})

    # 方式三
    dic = dict(name="job",age=18,sex="男")

    4、字典的增删改查

    # 增
    # 方法一:   注意:存在就修改,不存在就添加
    dic = dict(name="job",age=18,sex="")
    dic["hobby"] = ["篮球","足球","乒乓球"]
    print(dic) 
    答案:  
    # {'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}

    dic["age"] = 28
    print(dic) # {'name': 'job', 'age': 28, 'sex': '男'}
    方法二:setdefault     注意:存在就不变,不存在就添加
    dic = dict(name="job",age=18,sex="男")
    dic.setdefault("hobby",["篮球","足球","乒乓球"])
    print(dic)

    dic.setdefault('age',32)
    print(dic)
    答案:

    {'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}
    {'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}


    # 删除
    # dic = dict(name="job",age=18,sex="男")
    # # del
    # del dic['age']
    # print(dic) # {'name': 'job', 'sex': '男'}
    #
    # # clear
    # dic.clear()
    # print(dic) # {}

    # pop **
    dic = dict(name="job",age=18,sex="男")
    ret = dic.pop("age","没有此key") # 当key不存在时不会报错,会返回"没有此key"给ret
    print(ret) # 删除的key对应的值
    print(dic) # {'name': 'job', 'sex': '男'}

    # 改    同增方法的存在的key的赋值方法

    # 查
    方法一:通过key来查value
    dic = dict(name="job",age=18,sex="男")
    print(dic['name']) # job
    # print(dic['hobby']) # 如果不存在的key会报错
    方法二:通过get来查
    print(dic.get('hobby')) # 如果不存在的key不会报错,会显示None
    print(dic.get("age")) # 18

    # 特殊类型    keys    values    items

    # keys
    dic = dict(name="job",age=18,sex="男")
    print(dic.keys()) # dict_keys(['name', 'age', 'sex'])
    # 通过list转换成列表
    print(list(dic.keys())) # ['name', 'age', 'sex']
    for key in dic.keys():
    print(key)

    答案:
    name
    age
    sex

    # values
    print(dic.values()) # dict_values(['job', 18, '男'])
    # 通过list转换成列表
    print(list(dic.values())) # ['job', 18, '男']
    # 通过for循环来获取每一个value
    for value in dic.values():
    print(value)

    答案:
    job
    18


    # items
    dic = dict(name="job",age=18,sex="男")
    print(dic.items()) # dict_items([('name', 'job'), ('age', 18), ('sex', '男')])
    # 通过list转换成列表
    print(list(dic.items())) # [('name', 'job'), ('age', 18), ('sex', '男')]
    # 通过for循环拿到所有的元祖
    for i in dic.items():
    print(i)
    '''
    答案:
    ('name', 'job')
    ('age', 18)
    ('sex', '男')
    '''
    # 通过元祖的解包可以拿到key和value
    for key,value in dic.items():
    print(key,value)
    '''
    答案:
    name job
    age 18
    sex 男
    '''

    练习题

    dic = {'k1':'v1',"k2":'v2',"k3":[11,22,33]}
    # 请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
    dic.setdefault("k4","v4")
    print(dic)                   # {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
    
    # 请在修改字典中"k1"对应的值'alex',输出修改后的字典
    dic['k1']= "alex"
    print(dic)    # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
    
    # 请在k3对应的值中追加一个元素44 ,输出修改后的字典
    dic['k3'].append(44)
    print(dic)     # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33, 44], 'k4': 'v4'}
    
    # 请在k3对应的值的第一个位置插入一个元素18,输出修改后的字典
    dic['k3'].insert(1,18)
    print(dic)     # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 18, 22, 33, 44], 'k4': 'v4'}

    5、字典的嵌套

    dic = {
        'name':'汪峰',
        'age':48,
        'wife':[{'name':'国际章','age':38},],
        'children':{'girl_first':"小苹果","girl_second":"小怡",'girl_three':"顶顶"}
    }
    # 获取汪峰的名字
    print(dic.get('name'))            # 汪峰
    # 获取这个字典: {'name':'国际章','age':38}
    print(dic.get('wife')[0])         # {'name': '国际章', 'age': 38}
    # 获取汪峰妻子的名字
    print(dic.get('wife')[0].get('name'))     # 国际章
    # 获取汪峰的第三个孩子的名字
    print(dic.get('children').get("girl_three"))    # 顶顶

    练习题2

    dic1 = {
        'name':['alex',2,3,5],
        'job':'teacher',
        'oldboy':{'alex':['python1','python2',100]}
    }
    # 将name对应的列表追加一个元素'wusir'
    dic1.get('name').append("wusir")
    
    # 将name对应的列表中的alex首字母大写
    dic1.get('name')[0] = dic1.get('name')[0].capitalize()
    
    # oldboy对应的字典加一个键值对'老男孩':'linux'
    dic1.get('oldboy')['老男孩'] = 'linux'
    
    # 将oldboy对应的字典中的alex对应的列表中的python2删除
    del dic1.get('oldboy').get('alex')[1]
    print(dic1)

    补充:

    # 创建   formkeys
    dic1 = dict.fromkeys('abc',100)    # formkeys第一个参数是一个可迭代类型的数据,第二个可以为任意的数据
    print(dic1)              # {'a': 100, 'b': 100, 'c': 100}
    
    dic2 = dict.fromkeys('abc',[22,33,44])
    print(dic2)             # {'a': [22, 33, 44], 'b': [22, 33, 44], 'c': [22, 33, 44]}
    
    dic1 = dict.fromkeys('abcbd',100)
    print(dic1)            # {'a': 100, 'b': 100, 'c': 100, 'd': 100}    保证key的唯一性会去重

    # 坑
    dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
    # 删除key中包含'k'的数据
    # 错误
    # for key in dic1:
    # if 'k' in key:
    # dic1.pop(key)
    # print(dic1) # 报错

    # 正确
    # 方式一:
    # for key in list(dic1.keys()):
    # if 'k' in key:
    # dic1.pop(key)
    # print(dic1) # {'sex': 'man'}

    # 方式二:
    new_list = []
    for key in dic1.keys():
    if 'k' in key:
    new_list.append(key)
    print(new_list) # ['k1', 'k2', 'k3']
    for i in new_list:
    dic1.pop(i)
    print("dic1====>",dic1) # dic1====> {'sex': 'man'}


    总结:在循环一个字典的过程中,不要改变字典的大小(增,删字典的元素),这样会直接报错。

    # update
    # update第一种方式的使用
    # dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
    # dic1.update(sex='woman')
    # print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'woman'}
    #
    # dic1.update(name='wusir')
    # print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'woman', 'name': 'wusir'}

    # 总结:update对字典操作,有则覆盖,无则添加

    # update的第二种方式的使用
    # dic1.update([(1,'num1'),(2,'num2')])
    # print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'man', 1: 'num1', 2: 'num2'}

    # update的第三种方式的使用
    # dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
    # dic1.update({'k4':'numk4','k5':'numk5'})
    # print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'man', 'k4': 'numk4', 'k5': 'numk5'}



    7、集合  set 

    容器型的数据类型,它要求它里面的元素是不可变的数据(可哈希),但是它本身是可变的数据类型。集合是无序的。{}。

    集合的作用:1、列表的去重 2、关系的测试:交集、并集、差集….

    # 集合的创建
    # 方法一:
    # set1 = set({1,3,True,'alex'})
    # print(set1,type(set1))
    
    # 方法二
    # set1 = {1,3,True,"alex"}
    # print(set1)
    
    # 增删改
    # 增   add
    # set1 = {1,3,True,"alex"}
    # set1.add("wusir")
    # print(set1)
    
    # 删   pop   remove   clear  del
    # pop   随意删一个值
    # set1.pop()
    
    # remove   通过值来删除
    # set1.remove("alex")
    
    # clear   清空集合
    # del     把整个集合给删除
    # del set1


    # 交集   (& 或 intersection)
    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 & set2)
    print(set1.intersection(set2))

    # 并集 (| union)
    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 | set2)
    print(set1.union(set2))

    # 差集
    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1-set2) # set1中有的,set2中没有的
    print(set1.difference(set2))

    # 反交集
    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 ^ set2)
    print(set1.symmetric_difference(set2))

    # 子集
    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    print(set1<set2) # set1是不是set2的子集,意思是set1的元素是不是都在set2中
    print(set1.issubset(set2))

    # 超集
    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    print(set2 > set1) # set2是不是set1的超集,意思是set2是不是包含了set1
    print(set2.issuperset(set1))


    8、range

    类似于列表,自定制数字范围的数字列表

    基础数据类型分类

    按存储空间的占用分(从低到高)

    数字
    字符串
    集合:无序,即无序存索引相关信息
    元组:有序,需要存索引相关信息,不可变
    列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
    字典:有序,需要存key与value映射的相关信息,可变,需要处理数据的增删改(3.6之后有序)

    按存值个数区分

    标量/原子类型 数字,字符串
    容器类型 列表,元祖,字典

    按可变不可变区分

    可变 列表、字典
    不可变 数字,字符串,元祖,布尔值

    按访问顺序区分

    直接访问 数字
    顺序访问(序列类型) 字符串,列表,元祖
    key值访问(映射类型)

    字典





    -------------    end  ----------------------------

    对于一个有思想的人来说,没有地方是荒凉而遥远的
  • 相关阅读:
    python中用exit退出程序
    习题5-2 使用函数求奇数和 (15分)
    习题5-1 符号函数 (10分)
    练习5-3 数字金字塔 (15分)
    练习5-2 找两个数中最大者 (10分)
    练习5-1 求m到n之和 (10分)
    ubuntu使用教程
    图解HTTP 上
    Sublime Text 3 插件
    两千行PHP学习笔记
  • 原文地址:https://www.cnblogs.com/quanag/p/12608755.html
Copyright © 2020-2023  润新知