zoukankan      html  css  js  c++  java
  • 数据类型

    数字 int:

    1、将字符串转换为整形

    a = "789"
    print(type(a))
    b = int(a)
    print(type(b))

    将字符串转换为数字类型(设a为字符串类型)

    new_a = int(a)

    2、当前数字的二进制至少需要多少位表示

    -bit_lenght
    num = "0011" v = int(num,base = 16) print(v) r = age.bit_lenght()

     字符串 str:   

    #首字母大写
    -capitalize
    test = "harvey" v = test.capitalize()
    print(v)
    #全部变大写
    -swapcase
    test = "harvey"
    v = test.swapcase()
    print(v)
    #全部变小写,casefold更全面更完美
    -casefold
    test = "HARVEY"
    v = test.casefold()
    print(v)
    -lower test = "HARVEY" v = test.lower() print(v)

    #######################################
    #判断是否大写/小写;全部转换为大写/小写(用于登陆时用户输入的验证码)
    -upper/lower test = "haRvey" v1 = test.islower() v2 = test.lower() print(v1,v2) test = "haRvey" v1 = test.isupper() v2 = test.upper() print(v1,v2)
    #######################################
    #设置宽度(20)并将内容居中,两边空白可加仅一个字符
    -center
    test = "harvey"
    v = test.center(20,"-")
    print(v)
    -ljust/rjust
    test = "harvey"
    v = test.ljust(20,"*")
    v = test.rjust(20,"x")
    v = test.zfill(20)
    print(v)
    #字符串中寻找某子序列出现的次数
    -count
    test = "harveyHarvey"
    v = test.count('H')
    print(v)
    
    #可设置寻找范围,起始位x和结尾位y,范围是从x+1位开始到y位结束(范围型基本都为x+1)
    test = "harveyHarvey"
    v = test.count('ar',7,9)
    print(v)
    #判断以...开始/结束
    -startswith/-endswith
    test = "harvey"
    v = test.startswith('r')
    print(v)
    v = test.endswith('y')
    print(v)
    ######################################
    #寻找字符串中子序列是否存在及存在的位置(从左到右),不存在结果为-1。index功能与find相同,区别为找不到会报错,故一般不使用-find/-index
    -find test
    = "harveyHarvey" v = test.find('8') print(v) v = test.find('H') print(v)
    ######################################
    #将一个字符串中的占位符替换为指定的值
    -format/format_map
    test = 'I am {name},age is {a}'
    print(test)
    v = test.format(name = 'harvey',a = '21')
    print(v)
    test = 'I am {0},age is {1}'
    v = test.format('harvey','21')
    print(v)

    #-format与-format_map用法的区别
    test = 'I am {name},age {a}'
    v1 = test.format(name = 'harvey',a = '21')
    v2 = test.format_map({"name":'harvey',"a":'21'})
    print(v1,v2)
    #判断字符串中是否只包含数字和字母
    -isalnum
    test = 'harvey0414'
    v = test.isalnum()
    print(v)
    thing = 'utf-8_789'
    v = thing.isalnum()
    print(v)
    #判断字符串中是否只有字母和汉字
    -isalpha test = 'qwer' v = test.isalpha() print(v)
    #判断字符串中是否只是数字
    -isdecimal
    -isdigit
    -isnumeric test = "" # 1,② v1 = test.isdecimal() #针对范围最小 v2 = test.isdigit() #可支持绝大部分语言中的数字 v3 = test.isnumeric() #最全面,可支持汉字 print(v1,v2,v3)
    #是否存在不可显示的字符(如
    换行符,	制表符)
    -isprintable test = "asfagsdg/tasafg" v = test.isprintable() print(v)
    #判断是否全是空格
    #expandtabs:指定空格数
    -isspace test = "" v = test.isspace() print(v)
    #判断是否为标题(every word首字母大写)
    -istitle
    test = "you are my uniqueness" v = test.istitle() print(v) #转换成标题 -title
    test = "you are my uniqueness" v = test.title() print(v)
    ########################
    #将字符串中每一个元素按照指定分隔符拼接
    -join
    test = "刹那芳华" v = "_".join(test) print(v)
    刹_那_芳_华
    ########################
    #################################
    #移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
    ,从左/右开始
    #移除空格或 , ,从左/右开始
    -strip test = "harvey" v1 = test.strip('ar') v2 = test.lstrip('har') v3 = test.rstrip('ey') print(v1,v2,v3)
    harvey vey harv
    #################################
    #对应关系替换
    -makestrans,-translate test1 = "aeiou" test2 ="12345" v = "asddsge;wtreodf;hkukljuio" n = makestrans("aeiou","12345") #n = makestrans(test1,test2) new_v = translate(n) print(new_v)
    #将字符串分割为三部分,从左/右开始
    -partition
    test = "ouiohtnagfdhsfgh" v = test.partition('s') print(v) v = test.rpartition('s') print(v)
    ######################################
    #
    分割指定前几个,从左/右开始 -split
    test = "ousgnfjknosnkfspiu" v = test.split('s',2) print(v) v = test.rsplit('s',2) print(v)
    ['ou', 'gnfjkno', 'nkfspiu']
    ['ousgnfjkno', 'nkf', 'piu']
    #整数计算器
    value = "4+5"
    v1,v2 = value.split('+')
    v1 = int(v1)
    v2 = int(v2)
    print(v1+ v2)
    ######################################
    #分割,根据True和False确定是否保留换行符
    
    -splitlines
    test = 'qwertyu asdfg zxvb' v = test.splitlines(False) print(v)
    #检测字符串是否是字母开头
    -isidentifier
    test = "class" v = test.isidentifier() print(v)
    #########################
    #将指定字符串替换为指定字符串,并可以指定具体前几个
    -replace
    test = "harveyharveyharvey" v = test.replace("vey",'bbbbb') print(v) harbbbbbharbbbbbharbbbbb test = "harveyharveyharvey" v = test.replace("vey",'bbbbb',2) print(v) harbbbbbharbbbbbharvey
    #########################

    重点:join添加,   replace代替,   split分割,   upper变大写,   lower变小写,   find寻找字符串中字符,   strip移除

    四个超重点:
    一、for循环

    for 变量名 in 字符串;
    countinue  #跳出当前循环,当前循环不做操作,若有上一级循环则进入,如没有则什么都不输出
    break    #中止整个循环
    二、test[3]索引,下标,获取字符串中的某一个字符
    #test[3]获取字符串中的某一个字符
    test = "你怕是个小傻子吧"
    item = 0
    while item < len[test]:
        v = test[item]
        print(v)
        item += 1
    
    for m in test:
        print(m)
        break
    输出:你
    for m in test:
        continue
        print(m)
    输出:

    三、切片

    test = "你怕是个小傻子吧"
    v = test[0:5]#从第0位取到第4位
    v = test[0:-1]#-1代表取到倒数第二位
    print(v)
    你怕是个小
    你怕是个小傻子

    四、获取长度 

    #python3,获取当前字符串中由几个字符组成
    test = "你怕是个小傻子吧"
    v = len(test)
    print(v)

    五、获取连续或不连续的数字

    #可设置步长,取不连续的数     
    v = range(1,100,5)#步长为5,每5个数取一次 v = range(100,0,-5)从后往前,每次减5
    for item in v:
      print(item)
    1,5,10,15,20......
    练习题:根据用户输入的值,输出每一个字符以及当前字符所在的索引位置
    test = input("...")
    l = len(test)             #计算用户输入字符串长度
    for item in range(0,l):   #让item在字符串长度中循环,即索引位置
        print(item,test[item])#用test[]的表示方法表示出在 item 位置的字符  

    # 字符串一旦创建,不可修改
    # 一旦修改或者拼接,系统都会重新生成字符串,不会在源字符串中添加等操作。

    列表list:

    1、列表格式:

    li = [1,8,888,"test",["harvey", "你是猪",["18",8],"康师傅"],"qwer",True]

    2、列表中可以嵌套任意类型

    3、索引取值

    print(li[3])

    test

    4、切片

    print(li[4:-1])
    [["harvey", "你是猪",["18",8],"康师傅"],"qwer"]

    5、for循环,while循环

    6、删除(del),结合切片或索引

    del li[4:-2]
    del li[4]
    print(li)
    [1,8,888,'test','qwer',True]

    7、修改,结合切片或索引

    li[1] = 120
    li[1:2]
    print(li)
    [1,120,888,["harvey", "你是猪",["18",8],"康师傅"],True]

    8、判断是否有某一字符串(in的用法)

    li = [1,8,888,"harvey",["今麦郎",["19",8],"康师傅"],"qwer"]
    v = "今麦郎" in li
    print(v)
    False

     9、取值

    li = [1,8,888,"harvey",["今麦郎",["19",8],"康师傅"],"qwer"]
    #取"9"
    print(li[4][1][0][1])
    #字符串转换为列表
    #转换为列表类型时,系统会用for循环每一个元素,int类型不能被for循环,故不能通过此方法转换为list
    new_li = list(li)

     10、转换

    #将列表转换成字符串
    #当列表中有数字时
    li = [123,465,"123","harvey"]
    s = ""
    for i in li:
        s = s + str(i)
    print(s)
    123465123harvey
    #当列表中只有字符串时
    li = ["123","456","harvey"]
    v = "".join(li)
    print(v)
    #添加
    -append
    -extend 他的参数必须为可迭代对象,内部要进行for循环
    li = [12,34,56,78,56]
    li.append(["猴哥猴哥""你真了不得"])
    print(li)
    [12, 34, 56, 78, 56, ['猴哥猴哥', '你真了不得']]
    
    li.extend(["猴哥猴哥","你真了不得"])
    li.extend("了不得")
    print(li) [12,34,56,78,56,"猴哥猴哥","你真了不得"]
    [12,34,56,78,56,'不','得','了']
    #清除
    -clear
    li = [12,23,45,56]
    li.clear()
    print(li)
    []
    #浅拷贝
    -copy
    li = [12,34,56]
    li.copy()
    print(li)
    [12,34,56]
    #计算某元素出现次数
    -count
    li = [12,23,45,56,12]
    li.count(12)
    print(li)
    2
    #获取当前值索引位置(从左到右,只获取第一个)可设置起始位置
    -index
    li = [12,22,33,22,44]
    v = li.index(22,2,4)
    print(v)
    3
    #插值
    -insert
    li = [12,22,33,22,44]
    li.insert(想插入的位置,想插入的值)
    print(li)
    #删除一个值,通过索引指定,默认删除最后一个,也可获取删除的值
    -pop
    li = [12,22,33,22,44]
    v = li.pop(1)
    print(li)
    print(v)
    [12,33,22,44]
    22
    
    #删除一个指定值,左边优先
    -remove
    li = [12,22,33,22,44]
    v = li.remove(22)
    print(li)
    li = [12,33,22,44]
    (上面还有del)
    #将当前列表反转
    -reverse
    li = [12,22,33,22,44]
    li.reverse()
    print(li)
    [44,22,33,22,12]
    #给列表排序,从小到大或从大到小
    -sort
    li = [12,22,33,22,44]
    li.sort()
    print(li)
    [12,22,22,33,44]
    
    li.sort(reverse = True)
    print(li)
    [44, 33, 22, 22, 12]

    元组 tuple:

    1、元素一级不可被修改,不能增加或删除,但元组中嵌套列表,则可以,例如:

    tu =(123,"harey",[(33,44)],(8,9),"今麦郎",True,)
    tu[2] = 8
    print(tu) #报错
    
    tu[2][0] = 8
    print(tu) 
    (123, 'harey', [8], (8, 9), '今麦郎', True)
    
    tu[2][0][0] = 8
    print(tu) #报错,因为(33,44)仍是元组

    2、一般在元组最后加“,”,以区分其他类

    tu =(123,"harey",[(33,44)],(8,9),"今麦郎",True,)

    3、索引

    v = tu[0]

    print(v)

    123

    4、切片

    v = tu[0:2]

    print(v)

    5、可被for循环,为可迭代对象(join,extend)

    for item in tu:

      print(item)

    6、转换

    字符串,列表,元组可相互转换

    s = tuple(s),li = tuple(li)

    #获取某一元素出现次数
    -count
    #寻找某一元素,可指定起始索引位置与结束索引位置
    -index

    字典 dict:

    1、基本结构:

    {“k1”:v1 , "k2":v2 , "k3":v3}#键 值 对,key不能重复,否则只打印一个,布尔值视为1,0,注意不要重复

    2、字典的value可以是任意值

    info = {"k1":23 , "k2":True , "k3":[23 , [] , () , {"kk1":'vv1' , "kk2":'vv2'' , "kk2":(88,89)} ] , "k4":(88,89,90)}

    3、列表,字典不能作为字典的key,因为他们都可以修改。

    4、字典无序(每次打印结果会不同)

    5、索引,不可切片,因为字典为无序

    info = {"k1":23 , "k2":True , "k3":[23 , [] , () , {"kk1":'vv1' , "kk2":'vv2'' , "kk3":(88,89)} ] , "k4":(88,89,90)}

    找到88:

    v = info["k3"][3]["kk3"][0]

    print(v)

    6、删除del

    info = {"k1":23 , "k2":True , "k3":[23 , [] , () , {"kk1":'vv1' , "kk2":'vv2' , "kk3":(88,89)} ] , "k4":(88,89,90)}

    删除88:

    del info["k3"][3]["kk3"][0]

    print(info)

    7、for循环

    info = {"k1":23 , "k2":True , "k3":[23 , [] , () , {"kk1":'vv1' , "kk2":'vv2' , "kk3":(88,89)} ] , "k4":(88,89,90)}
    for item in info:
      print(item)
    k1
    k2
    k3
    k4
    for item in info.keys():
        print(item)
    k1
    k2
    k3
    k4
    for item in info.values():
       print(item)
    23
    True
    [23, [], (), {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (88, 89)}]
    (88, 89, 90)
    for item in info:
        print(item,info[item])
    k1 23
    k2 True
    k3 [23, [], (), {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (88, 89)}]
    k4 (88, 89, 90)
    #最标准方式
    for k,v in info.items():
        print(k,v)
    k1 23
    k2 True
    k3 [23, [], (), {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (88, 89)}]
    k4 (88, 89, 90)

     8、根据序列创建字典,并可设置统一值,不设置则默认为None

    -formkeys

    v = dict.fromkeys([k1,132,"888"])
    print(v)
    {'k1': None, 132: None, '888': None}
    
    v = dict.fromkeys(["k1",132,"888"],666)
    print(v)
    {'k1': 666, 132: 666, '888': 666}

     9、根据key获取value

    dic = {"k1":v2 , "k2":v2}
    #索引,不存在时会报错
    v = dic["k1"]
    print(v)
    v2
    v = dic["k6"]
    #报错
    
    #key不存在时,可以指定默认值(None)
    -get
    v = dic.get("v6",6)
    print(v)
    6

    10、删除

    #指定某一个key删除
    #
    可获取被删除的value -pop dic = {"k1":"v1" , "k2":"v2"} v = dic.pop("k1") print(dic,v) {'k2': 'v2'} v1 #若删除的k不存在,则输出默认值(None),或指定值 v = dic.pop("k6",6) print(dic,v) {"k1":"v2" , "k2":"v2"} 6
    #随机删除一个,不可传参数
    -popitem
    dic = {"k1":"v1" , "k2":"v2"}
    k,v = dic.popitem()
    print(dic,k,v)
    {'k1': 'v1'} k2 v2

    11、设置值

    #若指定的key已经存在,则获取该值
    -stdefault
    dic = {"k1":"v1" , "k2":"v2"}
    v = dic.setdefault("k1",123)
    print(dic,v)
    {'k1': 'v1', 'k2': 'v2'} v1
    #若不存在,则添加指定的key,可设置value,没有则默认
    v = dic.setdefault("k6",123)
    print(dic,v)
    {'k1': 'v1', 'k2': 'v2', 'k6': 123} 123

    12、更新

    #存在则修改,不存在则添加,两种表达方式
    -update
    dic = {"k1":"v1" , "k2":"v2"}
    v = dic.update({"k1":'888',"k6":123})
    v = dic.update(k1 = '888',k6 = 123)
    print(dic)
    {'k1': '888', 'k2': 'v2', 'k6': 123}

    重点:keys,value,items,get,update

  • 相关阅读:
    Linux 实例如何开启 MySQL 慢查询功能
    20步打造最安全的Nginx Web服务器
    解决java compiler level does not match the version of the installed java project facet
    maven项目重构目录
    【JeeSite】角色和权限的修改
    【JeeSite】区域和菜单管理
    【JeeSite】登录和主题切换
    【JeeSite】用户管理
    一个程序员的故事
    maven项目发布到Tomcat丢失jar包
  • 原文地址:https://www.cnblogs.com/harvey0414/p/9368130.html
Copyright © 2011-2022 走看看