首页 > 技术文章 > 数据类型及内置方法

spencerzhu 2019-07-03 21:30 原文

一、整型(int)

用途:有QQ号、手机号、不需要字母的身份证

1.定义方式:

age = 18  #age = int(18)

int (‘10’)#只能转到纯数字的字符串,小数点都不行。

2.进制转换:

   十进制转二进制:

   print(bin(12)) :0b1100

   十进制转八进制:

    print(oct(12)):0o14

    十进制转十六进制:

     prInt(hex(12)):0xc

     各种进制转回十进制:

     print(int('1100',2))

     print(int('1100',8))

     print(int('1100',16))

3.该类型总结: 

  1.存一个值

  2.有序(但凡有索引的数据都为有序)

  3.它是不可变类型(在值改变的情况下,id也跟着改变,即为不可变类型)

二、浮点型

作用:薪资、身高、体重

salary = 1.1# float(1.1)

res = float('1.11')

 print(type(res))

 <class 'float'>

三、字符串

用途:描述性

定义方式:‘’ ,“”,''' '''

s = ‘hello baby’

s1 = str([1,2,3,4])

print(type(s1)

<class 'str'>

无论什么类型,都能变成字符串。

1.按索引取值

s = 'hello big baby'

print(s[0])

h

切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串。

print(s[0:5]) >>>hello

print(s[0:10:1])>>>hello big #步长不写默认是1

print(s[0:10:2])>>>hlobg #步长表示隔几个取一个

负取值:prInt(s[0:5:-1])>>>不输出 原因:负取值是从右往左取值

              print(s[5:0:-2])>>>le

              print(s[-1:-10:-1])>>>ybab gib 

2.长度len:统计字符串中,字符的个数。

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

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

   username = input('>>>:')

   if username == 'zzj':

      print('goodjob')

但是如果,在输入时不小心键入了空格,那么就不会有运行结果了。

所以用到该方法:

  name1 = 'zzj'

  name2 = '    zzj        '.strip()

  print(name1 == name2)>>>True

  name3 = '$$$$$$zzj$$$$$$'  

  print(name3.strip('$'))

ps:只能取首尾!

4.1 rstrip(): lstrip():

   name = '$$$$$zzj$$$$$$'

   print(name.lsptrip('$'))>>>zzj$$$$$$

   print(name.rsptrip('$'))>>>$$$$$zzj

5.切分split:针对按照某种分割符组织的字符串,可以用split将其切分成列表,进而进行取值。顺序默认从左往右! 

   data = 'jason|123|handsome'

   print(data,split('|'))

   强调:split切分出来的数据类型是一个列表

6.循环

   msg='hello'

   for item in msg:

   print(item)>>>h e l l o

7.lower, upper

   s = 'JaSoN'

   print(s.upper())>>>JASON

   print(s.upper())>>>jason

   调用字符串的方法并没有改变字符串本身

8.startswith,endswith

   s1 = 'egon is dsb'

   print(s1.startswith('e')) >>>True # 判断字符串是否以什么什么开头

   print(s1.endswith('n')) >>>Flase# 判断字符串是否以什么什么结尾

9.format的三种玩法(python推荐使用format做格式化输出)

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

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

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

   print(str1)

   第二种  按索引占位

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

   print(str1)

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

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

   print(str1)

10.replace

   str = 'egon is dsb and egon is sb he has a BENZ'

   res = str.replace('egon','kevin',1)

   print(res)>>>kevin is dsb and egon is sb he has a BENZ

   print(str)>>>egon is dsb and egon is sb he has a BENZ #不改变原变量

11.isdigit :断字符串中包含的是否为纯数字

   while True:

     age = input('>>>:')

     if age.isdigit():

        age = int(age)

        if age > 28:

           print('阿姨好')

   else:

     print('请你给我好好输!')

12.find,rfind,index,rindex,count

   s = 'kevin is dsb o and kevin is sb'

   print(s.find('dsb')) >>>9 # 返回的是d字符所在的索引值

   print(s.find('xxx'))>>>-1  # 找不到的时候不报错返回的是-1

   print(s.find('i',0,3)) >>>-1# 还可以通过索引来限制查找范围

   print(s.index('o')) >>>13 # 返回所传字符所在的索引值

   print(s.index('i',0,3)) >>>找不到直接报错 # 返回所传字符所在的索引值

   print(s.count('n')) >>>3 # 统计字符出现的次数

13.center,ljust,rjust,zfill

    s9 = 'jason'

   print(s9.center(12,'*'))>>>***jason****

   print(s9.ljust(40,'$'))>>>jason$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

   print(s9.rjust(40,'$'))>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$jason

   print(s9.rjust(40,' '))>>>                                   jason

   print(s9.zfill(40))>>>00000000000000000000000000000000000jason

14.expandtabs

   s10 = 'a\tbc'

   print(s10.expandtabs(100))>>> a                                                                             bc

15.captalize,swapcase,title

   s12 = 'hElLo WoRLD sH10'

   print(s12.capitalize())  # Hello world 首字母大写

   print(s12.swapcase())  # 大小写互换

   print(s12.title())  # 每个单词的首字母大小

16.is数字系列

   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())

四、列表类型

作用:多个装备,多个爱好,多门课程。

定义:[]内可以有多个任意类型的值,逗号分隔

l=list('abc')

l1=list({'name':'jason','password':'123'})

print(l1)

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

1.按索引存取值(正向存取+反向存取):即可存也可以取

   l = [1,2,3,4]

   print(l[0:4:1])

   print(l[0::])

   print(l[5::-1])

   print(id(l))

   l[0] = 69

   print(id(l))

   print(l)

2.切片(顾头不顾尾,步长)

   l = [11,22,33,44,55]

   l1 = [99,88,77,66]

   2.1尾部添加一个66

      l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素

      print(l)>>>[11, 22, 33, 44, 55, 66]

   2.2任意位置添加元素

      l.insert(2,96)  # 通过索引在任意位置添加元素

      print(l) >>>[11, 22, 96, 33, 44, 55, 66] # insert值能将被添加的数据当作列表的一个元素

   2.3.添加容器类型数据

     l.append(l1)

     l.insert(-1,l1)

     l.extend(l1) # 内部原理for循环l1一个个追加到列表的尾部

     l.extend([1,])

     print(l)

  2.4.长度

    print(len(l))>>>5

  2.5.成员运算in和not in

    print( 444 in l)>>>Flase

  2.6.删除

    del l[2]  # del适用于所有的删除操作

    print(l)

 2.7  res1 = l.pop() 尾部弹出

        res2 = l.pop()

        res3 = l.pop()

        print(res1,res2,res3)>>>55 44 33

   

 

 

   

   

   

   

           

 

   

   

  

  

              

 

 

 

 

 

 

 

 

 

 

 

 

推荐阅读