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

     

  • 相关阅读:
    十个利用矩阵乘法解决的经典题目
    POJ-3070-Fibonacci
    java 正则表达式-忽略大小写与多行匹配
    【MM 非生产性物资采购】SAP实施项目中采购员在非生产性采购申请审批流中的角色安排(转)
    业务调研杂谈(转)
    重置报表输出选择
    【MM 配额管理】Quota Arrangement 配额管理(二)
    【MM 配额管理】Quota Arrangement 配额管理
    SDUST第十一次oj作业液晶显示问题
    如何在js代码中调用java,并将js的变量赋值给java
  • 原文地址:https://www.cnblogs.com/olivia2018/p/8059438.html
Copyright © 2011-2022 走看看