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:

    # 字符串一旦创建,不可修改
    # 一旦修改或者拼接,系统都会重新生成字符串,不会在源字符串中添加等操作。 
    #字符串之间合并只需要 + 运算符就可以实现

     1、大写小写

    #首字母大写
    -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)
    #######################################

    2、设置宽度

    #设置宽度(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)

    3、子序列次数

    #字符串中寻找某子序列出现的次数
    -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)

    4、判断开始结束

    #判断以...开始/结束
    -startswith/-endswith
    test = "harvey"
    v = test.startswith('r')
    print(v)
    v = test.endswith('y')
    print(v)

    5、寻找

    ######################################
    #寻找字符串中子序列是否存在及存在的位置(从左到右),不存在结果为-1。index功能与find相同,区别为找不到会报错,故一般不使用-find/-index
    -find
    test = "harveyHarvey"
    v = test.find('8')
    print(v)
    v = test.find('H')
    print(v)
    ######################################

    6、替换指定值(后有replace更好用)

    #将一个字符串中的占位符替换为指定的值
    -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)

    7、判断

    #判断字符串中是否只包含数字和字母
    -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)
    #检测字符串是否是字母开头
    -isidentifier
    test = "class"
    v = test.isidentifier()
    print(v)

    8、拼接

    ########################
    #将字符串中每一个元素按照指定分隔符拼接
    -join
    test = "刹那芳华"
    v = "_".join(test)
    print(v)
    刹_那_芳_华
    ########################

    9、移除

    #################################
    #移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,从左/右开始
    #移除空格或	,
    ,从左/右开始
    -strip
    test = "harvey"
    v1 = test.strip('ar')
    v2 = test.lstrip('har')
    v3 = test.rstrip('ey')
    print(v1,v2,v3)
    harvey vey harv
    #################################

    10、对应关系替换

    #对应关系替换
    -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)

    11、分割为三部分

    #将字符串分割为三部分,从左/右开始
    -partition
    test = "ouiohtnagfdhsfgh"
    v = test.partition('s')
    print(v)
    v = test.rpartition('s')
    print(v)

    12、分割

    ######################################
    #分割指定前几个,从左/右开始
    -split
    test = "ousgnfjknosnkfspiu"
    v = test.split('s',2)
    print(v)
    v = test.rsplit('s',2)
    print(v)
    ['ou', 'gnfjkno', 'nkfspiu']
    ['ousgnfjkno', 'nkf', 'piu']
    ######################################

    13、

    #分割,根据True和False确定是否保留换行符
    
    -splitlines
    test = 'qwertyu
    asdfg
    zxvb'
    v = test.splitlines(False)
    print(v)

    14、替换

    #########################
    #将指定字符串替换为指定字符串,并可以指定具体前几个
    -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),结合切片或索引

    li = [1,8,888,"test",["harvey", "你是猪",["18",8],"康师傅"],"qwer",True]
    del li[4:-2]
    del li[4]
    print(li)
    [1,8,888,'test','qwer',True]

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

    li = [1,8,888,"test",["harvey", "你是猪",["18",8],"康师傅"],"qwer",True]
    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])

    10、转换

    #转换为列表类型时,系统会用for循环每一个元素,int类型不能被for循环,故不能通过此方法转换为list
    #将列表转换成字符串
    #当列表中有数字时
    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)

    11、添加

    -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,'不','得','了']

    12、清除

    -clear
    li = [12,23,45,56]
    li.clear()
    print(li)
    []

    13、浅拷贝

    li = [12,34,56]
    li.copy()
    print(li)
    [12,34,56]

    14、判断元素出现次数

    -count
    li = [12,23,45,56,12]
    li.count(12)
    print(li)
    2

    15、获取索引位置

    #获取当前值索引位置(从左到右,只获取第一个)可设置起始位置
    -index
    li = [12,22,33,22,44]
    v = li.index(22,2,4)
    print(v)
    3

    16、插值

    -insert
    li = [12,22,33,22,44]
    li.insert(想插入的位置,想插入的值)
    print(li)

    17、删除

    #删除一个值,通过索引指定,默认删除最后一个,也可获取删除的值
    -pop
    li = [12,22,33,22,44]
    v = li.pop(1)
    print(li)
    print(v)
    [12,33,22,44]
    
    #删除一个指定值,左边优先
    -remove
    li = [12,22,33,22,44]
    v = li.remove(22)
    print(li)
    li = [12,33,22,44]
    (上面还有del)

    18、反转

    #将当前列表反转
    -reverse
    li = [12,22,33,22,44]
    li.reverse()
    print(li)
    [44,22,33,22,12]

    19、排序

    #给列表排序,从小到大或从大到小
    -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)

     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}

    整理:

    一、int

    int()

    二、str

    find,replace,strip,split,join,upper/lower,format

    三、列表

    append,extend,insert,索引,切片,循环

    四、元组

    一级元素不能修改,索引,切片,循环

    五、字典

    get,update,keys,values,items

    for循环,索引

    六、布尔值

    bool()

    记住False:0,None,"",[],(),{}

    其他均为True


    集合set:

    1、书写格式

    s = {1,2,3,4,5,6},创建一个不可变集合:s = frozenset(...)

    2、由不同元素组成

    3、无序

    4、集合中元素必须是不可变类型

    5、添加

    -add
    s = {1,2,3,4,5,6}
    s.add(3)
    print(s)
    {1,2,3,4,5,6}
    
    s.add('3')
    print(s)
    {1,2,3,4,5,6,'3'}

    6、清空

    -clear
    s = {1,2,3,4,5,6}
    s.clear()
    print(s)
    set()
    

    7、拷贝

    -copy
    s = {1,2,3,4,5,6}
    s.copy()
    print(s)
    s = {1,2,3,4,5,6}

    8、删除

    -pop
    #随机删除
    s = {1,2,3,4,5,6}
    s.pop()
    
    -remove
    #指定删除,若不存在会报错,故不常使用
    s.remove('1')
    print(s)
    s = {2,3,4,5,6}
    
    -discard
    #指定删除,不会报错
    s.discard('1')
    print(s)
    s = {2,3,4,5,6}

    9、求交集

    -intersection
    &
    s1 = {1,2,3,4,5,'harvey'}
    s2 = {4,5,6,7,8,'harvey'}
    s = s1.intersection(s2)
    s = s1 & s2
    print(s)
    {'harvey', 4, 5}
    {'harvey', 4, 5}

    10、求并集

    -union
    |
    s1 = {1,2,3,4,5,'harvey'}
    s2 = {4,5,6,7,8,'harvey'}
    s = s1.union(s2)
    s = s1 | s2
    print(s)
    {1, 2, 3, 4, 5, 'harvey', 6, 7, 8}

    11、求差集

    -difference
    -difference_update
    s1 = {1,2,3,4,5,'harvey'}
    s2 = {4,5,6,7,8,'harvey'}
    s = s1.difference(s2)        #s1 - s2
    print(s)
    {1, 2, 3}
    
    s1 = s1 - s2相当于s1.difference_update(s2)

    12、交差补集

    -symmetric_difference
    ^
    s1.symmetric_difference(s2)
    s1^s2

    13、判断有无交集,没有为True

    -isdisjoint
    s1={1,2}
    s2={2,3,5}
    print(s1.isdisjoint(s2))
    False

    14、判断子集,父集

    -issubset
    -issuperset
    s1={1,2}
    s2={1,2,3}
    print(s1.issubset(s2))
    s1 是s2 的子集
    print(s2.issubset(s1))
    False
    print(s2.issuperset(s1))
    s1 是s2 的父集

    15、修改

    -add    #只能加入一个值
    -update #可以加入多个值
    s1={1,2}
    s2={1,2,3}
    s1.update(s2)#将s1变为s2
    print(s1)
    {1,2,3}
    
    
  • 相关阅读:
    Redis 集群搭建详细指南
    java 获取properties的几种方式
    redis主从,哨兵集群
    Nginx服务器之负载均衡策略
    Redis中常用命令
    Java中使用Jedis操作Redis
    redis学习教程网站
    Redis 数据备份与恢复
    CentOS6.5 在线安装Redis5.0.9
    nginx中文学习网站(推荐)
  • 原文地址:https://www.cnblogs.com/harvey0414/p/10532933.html
Copyright © 2011-2022 走看看