zoukankan      html  css  js  c++  java
  • python基础二 ---类型转换 ,字符串,列表,元祖,for,range,enumerate

    一 数据类型一览

       int : 数字 1,2,3 等 ,用于计算

      bool : True,False. 用于判断

      string : 存储少量数据,用于操作

      list : 存储大量数据,任何数据都可存储

         [ 1,2,"sdffds",[1,2,3],'dfdfdf']

      元祖:存储大量数据,任何数据都可存储,但是只读。

      dict(字典): 存储大量关系型数据,查询速度很快。

        第一种:{‘name’ : 'john' , 'age' : '22' , 'height' : '180'}

        第二种 : { 'john' : [22,180,....... ] , 'oliver' : [.........] }

            集合 : 与list类似,主要用于 求交集 和 求并集 。

    二 基础数据类型及类型转换

    1 int

        bit_length() 当十进制用二进制表示时,最少使用的位数

    '''
                      bit_length
    1     0000 0001       1
    2     0000 0010       2
    3     0000 0011       2
    '''

    2 bool 

      只有true 和 false 代表真假。

      真 = 数字 = true、假 = 0 = false

    3 类型转换

    第一种:数字(int)与 字符串(str)

           int-->str     str(int) 

           str-->int     int(str)  注意:只有字符串内容是数字时,才可转换。

    第二种数字(int)与 布尔值(bool)

           int-->bool   bool(int) 非零数 = true   0 = false

           bool-->int   int(bool)     true = 1           false = 0

    #ps: 进行死循环时,选择效率高的
    while True:
        pass
    
    while 1: 效率高
        pass

    第三种:布尔值(bool)与 字符串(str) 

           str-->bool    s = " " 空字符串为false    s = "0",s = "非空字符串"为true

           bool-->str 

    第四种:字符串(str)与 列表(list)

           str-->list       li =s.split() 

           list-->str       s =  "   ".join(li) 

    join

    #'连接符,默认为拼接' . join(可迭代对象)
    #返回字符串
    #除了int,bool,含有多个元素的字符串,列表等可迭代
        li = ['taibai','alex','wusir','egon','女神',]
        s = '++++'.join(li)
        print(s)
        #taibai++++alex++++wusir++++egon++++女神    

     第五种: list --set

    #去重
        li = [1,2,33,33,2,1,4,5,6,6]
        set1 = set(li)
        print(set1)  #  {1, 2, 33, 4, 5, 6} 将列表变集合去重
        li = list(set1)
        print(li)      #  [1, 2, 33, 4, 5, 6] 再将去重的集合变列表       

    4 str 

      字符串的索引和切片

      索引:通过下标选取字符串中的元素,下标从零开始。(从左到右)      

      切片:通过索引截取字符串中的元素,形成新的字符串。(原则:顾头不顾尾)

    a = "ABCDEFG"
    # 1 取单个元素
    print(a[3]) # -->D 
    
    # 2 取一段 ,[首:尾:步长]
    print(a[0:3]) #-->ABC 顾头不顾尾
    print(a[0:]) #默认到最后 或者print(a[:])
    print(a[0:-1]) #-1就是最后一个 -->ABCDEF
    print(a[-1::-1])# --> GFEDCBA
    
    #3 隔几个取
    print(a[0:5:2]) #加步长-->ACE
    print(a[5:0:-2]) #反向加步长-->FDB

      字符串的操作 

     s = "AKKscDxx"
    #1 首字母大写 print(s.capitalize()) #2 全大写,全小写 用于验证不区分大小写的密码、验证码 print(s.upper()) print(s.lower()) #3 大小写翻转 print(s.swapcase()) #4 每个(空格,数字,特殊字符隔开的)单词的首字母大写 s= 'big small7middle&hi ' print( s.title())#-->Big Small7Middle&Hi #5 内同居中,总长度,空白处填充(空格或其他字符) s="a" print(s.center(10,"*")) #-->****aa**** #6 前面的补全   “““默认将一个tab键变成8个空格,如果tab前面的字符长度不足8 个,则补全8个,如果tab键前面的字符长度超过8个不足16个则 全16个,以此类推每次补全8个。”””    s = "hqw dfehdgyb"    print( s.expandtabs())#-->hqw dfehdgyb #7 startswith 判断是否以...开头 # endswith 判断是否以...结尾   s = "dkfjdkfasf54"   print(s.endswith('jdk',3,6)) #-->true   # 返回的是布尔值 顾头不顾腚 print(s.startswith("kfj",1,4))#-->true print(s.startswith(“dk"))#-->true #8 通用方法   l = len(s) #求字符串s的长度,返回值为 int #9 查找字符串中的元素   # find 通过元素找索引,找不到返回-1(int)   # index通过元素找索引,找不到报错   # 找到返回下标数字(int)    s = 'alexWUsir'   s8 = s.find('A')   s81 = s.index('A')   print(s81,type(s81))   s= "dkfjdkfasf54"   print(s.find("fjdk",1,6)) # -->返回 2 #10 去空格(特殊符号等) 默认删除前后空格,用于用户输入    s = "*egon**"    print(s.strip('*'))#-->egon    print(s.lstrip('*'))#-->egon**    print(s.rstrip('*'))#-->*egon    #s.strip(“%$#”) 分别删除%¥# #11 统计字符串中某个元素出现的次数 列表、元祖等通用    s = "adfad"    print(s.count("a",0,4) ) # 可切片 #12 拆分 默认以空格拆 可将字符串拆成列表,得到的列表不含 分割元素    # 注意原则:一分为二    s = ';alex;wusir;taibai'    l = s.split('a')print(l)#-->[';', 'lex;wusir;t', 'ib', 'i'] #13 格式化输出fomat(更高级)    #format的三种格式化输出    # s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')    # print(s) 对应    # name = input('请输入名字:')    # s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')    # print(s) 索引    # name = input('请输入名字:')    # s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')    # print(s) 变量 #14 replace (旧的,新的,个数)    s = '哈哈顶顶顶顶哈哈'    s = s.replace('哈哈','呵呵',1)    print(s)-->#呵呵顶顶顶顶哈哈 只替代一个 #15 is系列 返回 true false    name='jinxin123'    print(name.isalnum()) #字符串由字母或数字组成    print(name.isalpha()) #字符串只由字母组成    print(name.isdigit()) #字符串只由数字组成

    5 列表list 

      列表的索引和切片与字符串相同,且得到的是列表。

      列表的操作(增删改查)与字符串操作不一样,对列表进行操作将改变原列表,对字符串操作创建新字符串,原字符串不变。  

      通常对列表的操作与对列表中字符串的操作结合进行。

        li = ['alex','wusir','egon','女神','taibai']
    #增加 append
        li.append("nihao")
        print(li)#-> ['alex', 'wusir', 'egon', '女神', 'taibai', 'nihao']
    
    #索引插入insert(索引,对象)
        li.insert(2,123)
        # ['alex', 'wusir', 123, 'egon', '女神', 'taibai']
    
    #迭代插入extend(可迭代对象)分解到元素再加入
        li.extend(123)  #报错  数字不可迭代
        li.extend([1,2,"asd"]) 
        #['alex', 'wusir', 'egon', '女神', 'taibai', 1, 2, 'asd']
        li = ['taibai','alex','wusir','egon','女神',]
    #按索引删 pop()
        #pop() 默认删最后一个,且可返回删除的值
        print(li.pop(2),li)
        # wusir ['taibai', 'alex', 'egon', '女神']
    
    #按元素删 remove()
        li.remove('taibai')  
        print(li)#-->['alex', 'wusir', 'egon', '女神']
                
    #清空 clear() 
        li.clear()
        print(li) #-->[]
             
    #在内存中删除列表 del li 
    #切片去删 del li[x:y]    
        del li      #报错 li 不存在
        del li[0:2] #['wusir', 'egon', '女神']
        print(li)
    #直接赋值改变
        li[0] = "男神"#-->['男神', 'alex', 'wusir', 'egon', '女神']
    
    #先切片删除,再添加(添加不需要等于删除)
        li[0:3] = '云姐pl'#-->['云', '姐', 'p', 'l', 'egon', '女神']
        li[0:3] = [1,2,3,'春哥','咸鱼哥']
        #-->[1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']
        print(li)
    #循环查
        for i in li:
            print(i)
    #切片查某一段
        print(li[0:2])
     1 li = ['taibai','武藤兰','苑昊',['alex','egon',89],23]
     2 # print(li[1][1])
     3 # li[0] = li[0].capitalize()
     4 
     5 # li[2] = '苑日天'
     6 # print(li[2].replace('昊','ritian'))
     7 # li[2] = li[2].replace('昊','ritian')
     8 
     9 # li[3][0] = li[3][0].upper()
    10 # print(li)
    列表的嵌套

    6 通用方法

    len()

    #求长度   
        s = "adfad"
        print(len(s))  #--> 5 (个字符)
    
        a = ["q", "wss", "qssss", "sssr", "t", "y"]
        print(len(a))  #--> 6 (个元素)

    count ()

    #统计某个元素出现的次数
        s = "adfad"
        print(s.count("a",0,4) ) # 可切片
    
        a = ["q","w","q","r","t","y"]
        print(a.count("q"))    

    index()

    #找出某个值第一个匹配项的索引位置
        a = ["q","w","r","t","y"]
        print (a.index("r"))
    
        s = 'alexWUsir'
        print(s.index('al'))    

    reverse() 字符串不能用

    #反转元素
        li = ['taibai','alex','wusir','egon','女神',]
        li.reverse()
        print(li)    
        #--> ['女神', 'egon', 'wusir', 'alex', 'taibai']

    sort() 字符串不能用

        li = ['taibai','alex','wusir','egon','女神',]
    #正向排序 再原列表的基础上
        li.sort()
        print(li)#-->['alex', 'egon', 'taibai', 'wusir', '女神']
    #反向排序
        li.sort(reverse=True)
        print(li)#-->['alex', 'egon', 'taibai', 'wusir', '女神']

     7 元祖

      #元祖 只读列表,可循环查询,可切片。
      #儿子不能改,孙子可以改
       tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
        tu[4][3]=tu[4][3].upper()
        print(tu)
        #-->(1, 2, 3, 'alex', [2, 3, 4, 'TAIBAI'], 'egon')
    #元祖  如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。
        tu1 = (1)
        tu2 = (1,)
        print(tu1,type(tu1))       #   1 <class 'int'>                 
        print(tu2,type(tu2))       #  (1,) <class 'tuple'>
        
    
    

    8 range 

    #列表,盛放数字 (首,尾,步长)
    # for i in range(3,10): #顾头不顾尾 3.4...9
    # for i in range(10):    #0.1.2...9
    # for i in range(0,10,3):#0 3 6 9
    # for i in range(10,0,-2):#10 8 6  4 2
    # for i in range(10,-1,-2):#10 8 6  4  2 10 8 ...2

    9 for

    for i in s:        if   i in  s:

    # 输出元素
        li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds']
         for i in li:
             if type(i) == list:
                 for k in i:
                  print(k)
             else:print(i)
    
        for i in range(len(li)):
           if type(li[i]) == list:
                for j in li[i]:
                    print(j)
            else:print(li[i]

     10 enumerate

    li = ['alex','taibai','wusir','egon']
    for i in li:
        print(li.index(i),i)
    0 alex
    1 taibai
    2 wusir
    3 egon
    # li需可迭代,index为索引,可加
    for index,i in enumerate(li,100):
        print(index,i)
    100 alex
    101 taibai
    102 wusir
    103 egon

     

  • 相关阅读:
    173. Binary Search Tree Iterator
    199. Binary Tree Right Side View
    230. Kth Smallest Element in a BST
    236. Lowest Common Ancestor of a Binary Tree
    337. House Robber III
    449. Serialize and Deserialize BST
    508. Most Frequent Subtree Sum
    513. Find Bottom Left Tree Value
    129. Sum Root to Leaf Numbers
    652. Find Duplicate Subtrees
  • 原文地址:https://www.cnblogs.com/olivia2018/p/8059438.html
Copyright © 2011-2022 走看看