zoukankan      html  css  js  c++  java
  • Python【第二章】:Python的数据类型

    基本数据类型

    一、整型

    如: 18、73、84

    二、长整型

    如:2147483649、9223372036854775807

    三、浮点型

    如:3.14、2.88

    四、字符串

    如:'wupeiqi'、'alex'、'lzl'

    1、字符串常用功能:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #-Author-Lian
    #str功能操作
    name = "my name is lzl"
     
    print(name.capitalize())            #首字母大写
    #My name is lzl
     
    print(name.count("l"))              #统计字符串出现某个字符的个数
    #2
     
    print(name.center(30,"-"))          #打印30个字符,不够的-补齐
    #--------my name is lzl--------
     
    print(name.ljust(30,"-"))           #打印30个字符,不够的-补齐,字符串在左边
    #my name is lzl----------------
     
    print(name.endswith("lzl"))         #判断字符串是否以lzl结尾
    #True
     
    print(name[name.find("na"):])       #find寻找na所在的索引下标 字符串也可以切片
    #name is lzl
     
     
    print("5.3".isdigit())              #判断字符是否为整数
    #False
    print("a_1A".isidentifier())        #判断是不是一个合法的标识符(变量名)
    #True
    print("+".join(["1","2","3"]))     #把join后的内容加入到前面字符串中,以+为分割符
    #1+2+3
    print("\nlzl".strip())              #去换行符
    #lzl
    print("1+2+3+4".split("+"))        #以+为分隔符生成新的列表,默认不写为空格
    #['1', '2', '3', '4']
     
    name = "my name is {name} and i an {year} old"
    print(name.format(name="lzl",year=20)
    #my name is lzl and i an 20 old
    print(name.format_map({"name":"lzl","year":20}))            #很少用
    #my name is lzl and i an 20 old
     
    = str.maketrans("abcdefli","12345678")         #转换  一一对应
    print("lianzhilei".translate(p))
    #781nzh8758
     

    五、列表

    如:[11,22,33,44,55]、['wupeiqi', 'alex','lzl']

    1、创建列表:

    1
    2
    3
    4
    5
    6
    7
    #两种创建方式
    name_list = ['alex''seven''eric']
    print(name_list)
    # ['alex', 'seven', 'eric']
    name_list = list(['alex''seven''eric'])
    print(name_list)
    # ['alex', 'seven', 'eric']

    2、列表类常用功能

    ① 切片 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    print(name_list[0:3])       #取下标0至下标3之间的元素,包括0,不包括3
    #['Alex', 'Tenglan', 'Eric']
    print(name_list[:3])        #:前什么都不写,表示从0开始,效果跟上句一样
    #['Alex', 'Tenglan', 'Eric']
    print(name_list[3:])        #:后什么不写,表示取值到最后
    #['Rain', 'Tom', 'Amy']
    print(name_list[:])         #:前后都不写,表示取值所有
    #['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
    print(name_list[-3:-1])     #从-3开始到-1,包括-3,不包括-1
    #['Rain', 'Tom']
    print(name_list[1:-1])      #从1开始到-1,下标有正有负时,正数在前负数在后
    #['Tenglan', 'Eric', 'Rain', 'Tom']
    print(name_list[::2])       #2表示,每个1个元素,就取一个
    #['Alex', 'Eric', 'Tom']
    #注:[-1:0] [0:0] [-1:2] 都是空

     ② 追加

    1
    2
    3
    4
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    name_list.append("new")          #append追加,加到最后,只能添加一个
    print(name_list)
    #['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', 'new']

    ③ 插入

    1
    2
    3
    4
    #插入
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    name_list.insert(3,"new")          #insert插入,把"new"加到下标3的位置
    print(name_list)

    ④ 修改 

    1
    2
    3
    4
    #修改
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    name_list[2= "lzl"                #把下标2的字符串换成lzl
    print(name_list)

    ⑤ 删除 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #3种删除方式
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    del name_list[3]                      #del删除,指定要删除的下标
    print(name_list)
    #['Alex', 'Tenglan', 'Eric', 'Tom', 'Amy']
    name_list.remove("Tenglan")          #remove删除,指定要删除的字符
    print(name_list)
    #['Alex', 'Eric', 'Tom', 'Amy']
    name_list.pop()                       #pop删除,删除列表最后一个值
    print(name_list)
    #['Alex', 'Eric', 'Tom']

    ⑥ 扩展

    1
    2
    3
    4
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    age_list = [11,22,33]
    name_list.extend(age_list)               #extend扩展,把列表age_list添加到name_list列表
    print(name_list)

    ⑦ 拷贝

    1
    2
    3
    4
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    copy_list = name_list.copy()                #copy拷贝,对列表进行复制
    print(copy_list)
    #注:博客最下有关于深浅copy的详细区分

    ⑧ 统计 

    1
    2
    3
    name_list = ["Alex","Tenglan","Eric","Amy","Tom","Amy"]
    print(name_list.count("Amy"))               #count统计,统计列表Amy的个数
    #2

    ⑨ 排序和翻转

    1
    2
    3
    4
    5
    6
    7
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy","1","2","3"]
    name_list.sort()                              #sort排序,对列表进行排序
    print(name_list)
    #['1', '2', '3', 'Alex', 'Amy', 'Eric', 'Rain', 'Tenglan', 'Tom']
    name_list.reverse()                           #reverse翻转,对列表进行翻转
    print(name_list)
    #['Tom', 'Tenglan', 'Rain', 'Eric', 'Amy', 'Alex', '3', '2', '1']

     ⑩ 获取下标

    1
    2
    3
    name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    print(name_list.index("Tenglan"))              #index索引,获取字符的下标
    #1

    六、元组

    如:(11,22,33,44,55)、('wupeiqi', 'alex','lzl')

    1、创建元组

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #5种创建方式
    age = 11,22,33,44,55            #直接写数字或者字符串,默认创建类型元组 字符串类型用引号'lzl'
    #输出: (11, 22, 33, 44, 55)   
    age = (11,22,33,44,55)          #常见命名方式,()指定类型元组
    #输出: (11, 22, 33, 44, 55)
    age = tuple((11,22,33,44,55))   #tuple 以类的方式创建(()) 双括号 里面的()不可去掉
    #输出: (11, 22, 33, 44, 55)
    age = tuple([11,22,33,44,55])   #同(()) 效果一样 很少用 忘记它
    #输出: (11, 22, 33, 44, 55)
    age = tuple({11,22,33,44,55})   #({})创建的元组,随机排列  没卵用
    #输出: (33, 11, 44, 22, 55)

    2、元组类常用功能:

    1
    2
    3
    4
    5
    6
    7
    8
    ##count        #统计元组字符出现的次数   
    name =  ('wupeiqi''alex','lzl')
    print(name.count('alex'))             
    # 1
    ##index             #查看字符串所在的索引位置
    name =  ('wupeiqi''alex','lzl')
    print(name.index('lzl'))               
    # 2

    七、字典 无序

    如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80}

    注:字典一种key:value 的数据类型,也称键值对。字典dict是无序的,key值必须是唯一的,不能有重复。循环时,默认循环的是key

     1、创建字典
    1
    2
    3
    4
    5
    6
    7
    #两种创建方式:
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    print(info_dic)
    #{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}
    info_dic = dict({'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",})
    print(info_dic)
    #{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}

    2、字典类常用功能:

    ① 增加

    1
    2
    3
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    info_dic['stu1104'= "JingKong Cang"           #增加
    print(info_dic)

     ② 修改

    1
    2
    3
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    info_dic["stu1101"= "Jingkong Cang"         #有相应的key时为修改,没有为增加
    print(info_dic)

    ③ 删除

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #3种删除方式
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    info_dic.pop('stu1101')                       #pop删除,指定删除的key
    print(info_dic)
    #{'stu1103': 'XiaoZe Maliya', 'stu1102': 'LongZe Luola'}
    del info_dic['stu1102']                      #del删除,指定删除的key
    print(info_dic)
    #{'stu1103': 'XiaoZe Maliya'}
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    info_dic.popitem()                             #随机删除,没卵用
    print(info_dic)
    #{'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}

    ④ 查找value值

    1
    2
    3
    4
    5
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    print(info_dic.get('stu1102'))                  #get查找,通过key查找value值
    #LongZe Luola
    print(info_dic['stu1102'])                      #通过key直接查找,但是如果输入查找的key不存在的话,就会报错,get则不会
    #LongZe Luola

    ⑤ 字典多级嵌套

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    av_catalog = {
        "欧美":{
            "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
            "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
            "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
            "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
        },
        "日韩":{
            "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
        },
        "大陆":{
            "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
        }
    }
     
    av_catalog["大陆"]["1024"][1+= ",可以用爬虫爬下来"
    print(av_catalog["大陆"]["1024"])
    #['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

    ⑥ 循环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
    for stu_nu in info_dic:
        print(stu_nu,info_dic[stu_nu])             #循环默认提取的是key
    #stu1103 XiaoZe Maliya
    #stu1101 TengLan Wu
    #stu1102 LongZe Luola
    for k,v in info_dic.items():                  #先把dict生成list,数据量大的时候费时,不建议使用
        print(k,v)
    #stu1103 XiaoZe Maliya
    #stu1101 TengLan Wu
    #stu1102 LongZe Luola

    八、集合 

    如:{'lzl', 33, 'alex', 22, 'eric', 'wupeiqi', 11}

    注:集合是一个无序的,不重复的数据组合。去重性,把一个列表变成集合,就自动去重了。关系测试,测试两组数据之前的交集、差集、并集

    1、创建集合

    1
    2
    3
    4
    #标准创建方式
    info_set = set(["alex","wupeiqi","eric","lzl",11,22,33])
    print(info_set,type(info_set))
    #{33, 11, 'wupeiqi', 'lzl', 'alex', 'eric', 22} <class 'set'>

    2、集合类常用功能

    ① 添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #添加的两种方式
    set_1 = set(["alex","wupeiqi","eric","lzl"])
    set_1.add(11)                         #add只能添加一个元素
    print(set_1)
    #{'alex', 'lzl', 'eric', 11, 'wupeiqi'}
     
    set_1 = set(["alex","wupeiqi","eric","lzl"])
    set_1.update([11,22,33])
    print(set_1)                           #update可以添加多个元素
    #{33, 11, 'alex', 'wupeiqi', 'eric', 22, 'lzl'}

    ② 删除

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #删除的三种方式
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_1.remove("alex")                    #remove 删除指定元素
    print(set_1)
    #{'eric', 33, 'lzl', 11, 22, 'wupeiqi'}
     
    set_1.pop()                             #pop 随机删除元素
    print(set_1)
    #{33, 'wupeiqi', 11, 22, 'lzl'}
     
    set_1.discard("lzl")                   #discard 删除指定元素,与remove区别在于,如果元素不存在也不会报错
    set_1.discard(55)
    print(set_1)
    #{33, 'wupeiqi', 11, 22}

    3、集合关系测试

    ① 交集

    1
    2
    3
    4
    5
    6
    #交集
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
     
    print(set_1.intersection(set_2))            #intersection 取两个set的交集 set_1和set_2可以互换位置
    #{33, 11, 22}

    ② 并集

    1
    2
    3
    4
    5
    6
    #并集
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
     
    print(set_1.union(set_2))                     #union 取两个set集合的并集 set_1和set_2可以互换位置
    #{33, 66, 11, 44, 'eric', 55, 'lzl', 22, 'wupeiqi', 'alex'}

    ③ 差集

    1
    2
    3
    4
    5
    6
    #差集
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
     
    print(set_1.difference(set_2))                 #difference  取两个set集合的差集 set_1有但是set_2没有的集合
    #{'lzl', 'eric', 'wupeiqi', 'alex'}

    ④ 子集、父集  

    1
    2
    3
    4
    5
    6
    7
    8
    #子集
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
    set_3 = set([11,22,33])
    print(set_1.issubset(set_2))                      #issubset 子集
    #False
    print(set_1.issuperset(set_3))                    #issuperset 父集
    #True

    ⑤ 对称差集

    1
    2
    3
    4
    5
    6
    #对称差集
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
     
    print(set_1.symmetric_difference(set_2))           #symmetric_difference 对称差集=两个集合并集减去合集
    #{66, 'lzl', 'eric', 'alex', 55, 'wupeiqi', 44}

    ⑥ 运算符做关系测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #运算符做关系测试
    set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
    set_2 = set([11,22,33,44,55,66])
     
    set_union = set_1 | set_2           # 并集
     
    set_intersection = set_1 & set_2    # 交集
     
    set_difference = set_1 - set_2      # 差集
     
    set_symmetric_difference = set_1 ^ set_2  # 对称差集
  • 相关阅读:
    C# 根据主窗体的位置弹窗信息窗体一直保持在主窗体中间
    c# winForm父子窗口 通过委托进行信息传递
    使用devexpress插件 消除运行时弹窗
    C# 获取当前时间戳
    WinForm实现Loading等待界面
    转载 C#设置控件 Enabled 为 false 时背景色不改变
    DEV gridView中加入加载条显示进度,必须为圆角型
    winfrom 圆角化
    列表元素的反转、排序——python
    使用for循环和while循环打印九九乘法表——python
  • 原文地址:https://www.cnblogs.com/yaabb163/p/5809769.html
Copyright © 2011-2022 走看看