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\tbc'
    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)     #把列表里面值一个个取出来

 

posted @ 2019-07-03 20:37  只会玩辅助  阅读(342)  评论(0编辑  收藏  举报