• 2019-07-03-数字类型、字符串、列表及其内置方法


    本节知识点总结:

      1.整型 int:进制转换

         2.字符串  str : 

        常用操作:1.按索引取值

             2.切片

             3.长度len

             4.成员运算 in/not in

             5.去掉字符串两边的字符strip,不管中间的

             6.切分split

             7.循环  for

        需要掌握操作:lower/upper

               startswith/endswith

               format

               join

                  replace

               isdigit 

        3.列表 list

          常用操作:1.索引取值

               2.切片

               3.添加元素:append/insert/extend

               4.删除:del/pop/remove

            

    一、整型(int)

      1、用途:存qq号,手机号,不带字母的身份证等等

      2、定义方式:

        age =  18      #age =  int(18)

        # int('1.1')    #int只能转纯数字的字符串,像这个有小数点也不行

      #进制转换

      #其他进制转换十进制

      #二进制转换十进制   0,1

      10     #  1*(2**1)+0*(2**0)=2      所以这个转换变成2

      #八进制转换十进制

      235    #  2*(8**2)+3*(8**1)+5*(8**0)    

      #十六进制转换十进制

      217    #  2*(16**2)+1*(16**1)+7*(16**0)

      也可以使用 int进行转换

         print(int('1100',2))  #  '1100'  二进制转换成十进制

        print(int('14',8))      # '14'  八进制转换成十进制

        print(int('c',16))    #  c  十六进制转换成十进制

        这里int可以传第二个参数,表示的是第一个参数想要从什么进制转换成十进制

      

      #十进制转换成其他进制

      #十进制转二进制

        print(bin(12))   #0b1100      0b表示后面的数字是二进制数

      #十进制转八进制

        print(oct(12))   #0o14   0o表示后面的数字是八进制数

      #十进制转十六进制

        print(hex(12))  #0xc    0x表示后面的数字是十六进制数字

      总结:1.存一个值

         2.无序(因为不可以用索引取值)

            3.不可变类型数据

      区别可变类型和不可变类型:

        可变类型:在值改变的情况下,id不变,说明你的值是原值     不可hash

        不可变类型:在值改变的情况下,id也改变      可hash

    二、浮点型  float

      1.作用:表示薪资,体重可以使用

      2.定义:  salary = 1.1     #salary = float(1.1)

    三、字符串  str

      1.作用:描述性信息,名字,自我介绍等文字

      2.定义: name = 'old boy'

      3.常用操作+内置方法

        需要学习的

        1.按索引取值(正向取+反向取)     只能取

          s = 'oldboy areok'

          print(s[3])     索引值从0开始,3的值是b

        2.切片(左闭右开,步长)  #从一个大的字符串中截取一段小的字符串

          正向

          print(s[:])    #这样写一个冒号就是从头取到尾

          print(s[0:5])   #oldbo    

          print(s[0:6:2])  #odo    默认步长是1,这里写2就是隔一个取一个

          反向

          print(s[-1])  #k     -1就是指最后一个字符

          print(s[0:5:-2])   #这里取不到值,因为从0开始-2方向没有值    切片默认方向是从左向右

          print(s[5:0:-1])  #yobdl     遵循左闭右开,从索引5开始取值,索引0取不到,方向向左

          print(s[-1:-10:-1])    #koera yob     空格也算字符

        3.长度len:统计字符串中字符的个数

          s = 'oldboy areok'

          print(len(s))   #12       包括空格在内,从1开始

        4.成员运算 in 和not in :判断一个子字符串是否存在于一个大的字符串中

          返回值是True 或者False

          print('old' in 'oldboy areok')     #True

          print('jason' in 'oldboy areok')     #False

        5.strip去掉字符串左右两边的空格,不管中间的

          strip()默认去除字符串收尾的空格,也可以设置去掉其他字符

    name = '   old boy  '
    print(name.strip())       #old boy
    
    
    
    #如果这个字符串首尾是$,在strip中写$
    name1 = '$$$$old boy$$$$'
    print(name1.strip('$'))             #old boy
    
    
    #去除首尾的这些字符
    name1 = '#$%^old boy*&('
    print(name1.strip('#$*&'))       #%^old boy*&(
    
    #这个一定要写到开头和结尾的字符,才会去掉
    name1 = '#$%^old boy*&('
    print(name1.strip('#$%&('))    #^old boy*

          还分为左去除和右去除  

    name2 = '$$$$jason$$$$'
    print(name2.lstrip('$'))     #jason$$$$
    print(name2.rstrip('$'))    #$$$$jason

        6.切分split:将一个字符串按照特殊的字符切割组成列表

          split切割出来就是一个列表,默认是从左往右切割

    data = 'joso n|1o3| handsome'
    print(data.split('o'))
    print(data.split('o',1)) 
    print(data.rsplit('o',1))
    
    
    # ['j', 's', ' n|1', '3| hands', 'me']  #根据o来切割整个字符串
    # ['j', 'so n|1o3| handsome']    #从左往右切割一个
    # ['joso n|1o3| hands', 'me']   #rsplit从右往左切割一个

        7.循环   (把字符一个个循环取出来)

          for i in data:

            print(i)

      需要掌握的:

        1.strip,lstrip,rstrip(去除字符串前后两边的字符,中间的不管)

         2.lower,upper (全部变成小写和全部变成大写)

    #lower  全部变成小写
    name = 'OlD boY'
    print(name.lower())    #old boy
    
    #upper  全部变成大写
    print(name.upper())  #OLD BOY

        3.startswith,endswith (判断字符串是否是以什么开头,结尾,返回True或者False)

    name = 'OlD boY'
    
    print(name.startswith('O'))  #True
    print(name.endswith('y'))    #False

        4.format的三种玩法  (format可以做格式化输出)  '{}{}'.format('aa','bb')

          第一种    按位置占位     跟%s原理一致

          str = 'my name is {} my age is {}'.format('jason',18)

          第二种  按索引占位   format里面参数的索引

          str1 ='my {0} name is {1} my age {1} is {0}'.format('jason',18)

          第三种  指名道姓占位 (关键字传参)

          str2 = 'my {name} name is {age} my age {age} is {name}'.format(name = 'jason',age = 18)

        5.split,rsplit     切割成一个列表

        6.join    #将容器类型中的多个元素(元素一定要是字符串)通过指定字符拼接成一个字符串   ' '.join()   

    拼接的元素必须是字符串类型
    
    l = ['1','22','44']
    print('|'.join(l))     #1|22|44   
    
    l2 = {'name':'bb','age':18}
    print('|'.join(l2))       #name|age

        7.replace   替换      replace( old , new,要修改的个数)     第三个参数如果不填就是修改全部。如果你填写的是1,就从左往右数修改第一个

    str = 'my name is ooo age is ooo'
    res = str.replace('ooo','xxx')    #ooo全部替换成xxx
    res1 = str.replace('ooo','xxx',1)  #只替换一个
    print(res)   #my name is xxx age is xxx
    print(res1)  #my name is xxx age is ooo

        8.isdight   #判断字符串中包含是否为纯数字(如果全是数字返回的是True否则返回False) 

    s= '123ty'
    print(s.isdigit())    #False

      总结:这里有三种字符串拼接的方法:

            1.格式化输出 %s,%d

            2.'{}{}'.format('aa','bb')

            3.' '.join(a)     #a= ['11','22','33']    a可以是元组、列表、字典等可以循环的,但是里面的元素要是字符串

        需要了解的内置方法:

        1.find,rfind,index,rindex,count

    s = 'kevin is dsb o and kevin is sb'
    print(s.find('dsb'))  # 返回的是d字符所在的索引值
    print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
    print(s.find('i',0,3))  # 还可以通过索引来限制查找范围
    print(s.index('o'))  # 返回所传字符所在的索引值
    print(s.index('i',0,3))  # 返回所传字符所在的索引值,后面的数字表示在0~3索引之间查找
    print(s.count('n'))  # 统计字符出现的次数

        find 如果没有查找到索引值就会返回-1,index如果没有找到索引值就会报错

        2.center/ljust,rjust/zfill     

    s9 = 'jason'
    print(s9.center(12,'*'))   #设置整个字符串长度为12,jason加在中间位置,其余用*填满
    print(s9.ljust(40,'$'))    #设置整个字符串长度为40,jason放在左边,其余用$填满
    print(s9.rjust(40,'$'))    #设置整个字符串长度为40,jason放在右边,其余用$填满
    print(s9.rjust(40,' '))    #设置整个字符串长度为40,jason放在右边,其余用空格填满
    print(s9.zfill(40))        #设置整个字符串长度为40,jason在右边,其余用0填满
    
    结果:
    ***jason****
    jason$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$jason
                                                                   jason
    00000000000000000000000000000000000jason

        3.expamdtabs  

        s10 = 'a	bc'
        print(s10.expandtabs(1)) #a bc

        4.captalize,swapcase,title      

    s12 = 'hElLo WoRLD sH10'
    print(s12.capitalize())  # Hello world 首字母大写
    print(s12.swapcase())  # 大小写互换
    print(s12.title())  # 每个单词的首字母大写
    
    结果:
    Hello world sh10
    HeLlO wOrld Sh10
    Hello World Sh10

        5.is数字系列   (返回的是True或者False)      

    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    # ''.isnumeric(): unicode,中文数字,罗马数字    只要是表示数字都识别
    print(num2.isnumeric())
    print(num3.isnumeric())
    print(num4.isnumeric())
    
    # ''.isdecimal(): unicode   只识别普通的阿拉伯数字
    print(num2.isdecimal())
    print(num3.isdecimal())
    print(num4.isdecimal())
    
    # ''.isdigit() :bytes,unicode    通常情况下使用isdigit就已经满足需求了
    print(num1.isdigit())
    print(num2.isdigit())
    print(num3.isdigit())
    print(num4.isdigit())

      字符串总结:

        1.存一个值

        2.有序(因为可以用索引取值)

        3.不可变类型

    四、列表  list

      1.作用:

        记录存储多个值,可以方便取出来

      2.定义:用[]表示,用逗号隔开多个任意类型的值     name = ['bb',1,{'name':'aa'}]

        list内部原理就是for循环取值,然后一个个塞到列表中

      3.常用操作+内置方法

        1.按索引取值(这个和字符串的用法是一样的)     

    l = [1,2,3,4]
    print(l[0:4:1])  #从索引0到3取值,步长为1
    print(l[0::])    #从索引0开始到最后
    print(l[5::-1])  #反方向取值  步长也是1
    
    结果:
    [1, 2, 3, 4]
    [1, 2, 3, 4]
    [4, 3, 2, 1]

        2.切片(左闭右开,步长)

          l  =[22,44,55,88,99]

          print(l[1:4])     #[44,55,88]

        3.添加   append/insert/extend

          append  (append值能将被添加的数据当成列表的一个元素),默认添加在最后。 

    l  =[22,44,55,88,99]
    l.append(666)
    print(l)   #[22, 44, 55, 88, 99, 666]
    l.append([123,678])
    print(l)   #[22, 44, 55, 88, 99, 666, [123, 678]]

          insert(通过索引在任意位置添加元素,insert也能将被添加的数据当成一个元素)   

    l  =[22,44,55,88,99]
    l.insert(2,333)  #把333添加到索引为2的位置
    print(l)
    l.insert(4,[222,999])  #把列表[22,999]添加到索引为4的位置
    print(l)
    
    结果:
    [22, 44, 333, 55, 88, 99]
    [22, 44, 333, 55, [222, 999], 88, 99]

          extend(添加容器类型数据,内部原理for循环列表一个个追加到列表的尾部)

    l  =[22,44,55,88,99]
    ll = [000,999,888]
    lll = {'name':'oo','age':17}
    l.extend(ll)    #[22, 44, 55, 88, 99, 0, 999, 888]
    l.extend(lll)   #[22, 44, 55, 88, 99, 'name', 'age']
    print(l)

      总结:列表有三个添加

          1.append(在末尾添加)

          2.insert(有两个参数,一个是要添加的索引位置,一个是要添加的数据)

          3.extend(只能添加容器类型数据,就是可以for循环的)

        4.长度    len(l)

        5.成员运算in和not in(返回的结果是True或者是False)

        6.删除:

          也有三种:del/pop/remove

          del  适用于所有的删除操作,根据索引值删除

    l  =[22,44,55,88,99]
    del l[2]
    print(l)    #[22, 44, 88, 99]

          pop   默认删除最后一个元素,会返回删除的值  

    l  =[22,44,55,88,99]
    print(l.pop())     #99
    print (l.pop(2)) #删除索引为2的元素

          remove  删除指定列表中存在的值

    l  =[22,44,55,88,99]
    l.remove(55)
    print(l)    #[22, 44, 88, 99]   删掉元素55

      总结:列表删除也有三种:

          1.del

          2.pop

          3.remove

        7.循环

          for i in l:

            print(l)     #把列表里面值一个个取出来

  • 相关阅读:
    js中两个==和三个===的区别
    软件需求工程解析
    《我们应当怎样做需求分析》阅读笔记
    需求工程阅读笔记03
    个人小软件冲刺05
    个人小软件冲刺04
    需求工程阅读笔记02
    个人小软件冲刺03
    个人小软件冲刺02
    个人小软件冲刺01
  • 原文地址:https://www.cnblogs.com/wangcuican/p/11128908.html
Copyright © 2020-2023  润新知