基本数据类型及内置方法

优先掌握

1、整型int

  用途:一般用于定义整数,如年龄,手机号等

  定义方式:age = 18 即 age = int(18)

  常用于数学计算

  可用int来进行进制间的转换:print(int('110', 2))

               print(int('123', 8))

               print(int('801', 16))

  类型总结:int 是 无序,不可变类型,只能存一个值。

2、浮点型float

  用途:记录小数,身高,体重等

  定义方式: height = 1.80 即 height = float(1.80)

  用于数学计算

  类型总结:float是无序,不可变类型,只能存一个值

3、字符串

  用途:用于储存描述性信息,姓名等

  定义方式:s = ' '  s = ''  ''  s = '''  '''   s = ''''''   ''''''    引号使用无区别,但不能混用   补充:字符串前加r转义,把特殊意义符号转为字符串

  常用方法:1、索引取值(可正向也可反向,只能取不能存)

        

s1 = 'hello world'
print(s1[4]) # 正向取o
print(s1[-7]) # 反向取o

       2、索引切片:截取字符串中的一小段字符串

s1 = 'hello world'
print(s1[2: 5]) # 取llo
print(s1[4:]) # 取o world
print(s1[: 5]) # 取hello
print(s1[0: -2: 2]) # 设置步长为2,取hlowr
print(s1[:: -1]) #颠倒字符串 dlrow olleh

        3、成员运算:in,not in  返回布尔值

        4、strip:去除字符串左右两边的空格或符号

name = input('输入姓名').strip()
print(name)

a1 = '***lzn***'
print(a1.strip('*'))

        5、split:切分,对字符串进行切分,可以指定切分的分隔符(默认为空格),返回列表

a1 = 'lzn*25*male'
print(a1.split('*'))

# ['lzn', '25', 'male']

       6、长度len:获取当前字符串的长度,即字符的个数

        print(len('hello'))

        >>> 5

            7、循环for:一次取出字符串中每一个字符

s = 'hello world'
for i in s:
    print(i)

需要掌握

      8、restriplstrip:切除右边空格切除左边空格

      9、lowerupper: 大小写转换

         str.lower() 将英文字符串全部变为小写

         str.upper()将英文字符串全部变为大写

      10、startswithendswith:判断当前字符串以什么开头,返回布尔值

      11、格式化输出format:{ }中可以索引传值,也可指定传值

print('我叫{},今年{}岁'.format('lzn', 25))
# >>>我叫lzn,今年25岁
print('我叫{0},今年{1}岁'.format('lzn', 25))
# >>>我叫lzn,今年25岁
print('我叫{1},今年{0}岁'.format('lzn', 25))
# >>>我叫25,今年lzn岁

       12、split split:按照从左往右从右往左的顺序对字符串进行切分,可指定分隔符和切割次数。

str = 'lzn*25*male'
print(str.rsplit('*', 1))
>>> ['lzn*25', 'male']

      13、jion:将可迭代对象中每个元素按照指定的分隔符进行拼接,拼接结果为字符串

 

l1 = ['lzn', '25', 'male']
print('|'.join(l1))
>>>lzn|25|male

      14、replace:将字符串中的元素进行替换

        语法:replace('旧内容', '新内容')

        

str = 'lzn,18'
print(str.replace('lzn', 'Bill'))
>>>'Bill,18'

      15、isdigit:判断字符串是否是纯数字组成,返回布尔值 

num = '1233211234567'
print(num.isdigit())
>>>True

了解操作

      16、find:查找当前字符串中某个元素的位置(可指定范围),返回索引,找不到返回-1

      17、index:同find,找不到返回异常

      18、count:统计当前字符串中某个元素的个数

      19、centerljust justzfill:设定总宽度,居中左对齐右对齐右对齐,字符串宽度不够用指定符号填充,zfill用0填充

      20、is系列

字符串类型总结:有序,不可变类型,只能存一个值

4、列表

    用途:用于存一个或多个不同类型的值

    定义方式:通过[]存值,每个值间用逗号分隔

      1、索引取值(正反都可),可取可存

         l1 = [1,2,3,4,5]

         print(l1[2])

         >>>3

      2、索引切片

         print(l1[1: 4])

         >>>[2,3,4]]

      3、添加

      3.1 append():追加值,只能添加到最后一位,一次只能添加一个值

          l1.append(1000)

          print(l1)

          >>>[1,2,3,4,5,1000]

      3.2 insert():插入值,通过索引指定插入位置

          l1.insert(3, 999)

          print(l1)

          >>>[1,2,3,999,4,5]

       3.3 extend():一次可增加多个值(必须是可迭代对象)

          l1.extend([6,7,8])

          print(l1)

          [1,2,3,4,5,6,7,8,9]

        4、删除

        4.1 remove():把指定值删除(只删除出现的第一个值)

        l1.remove(1)

        print(l1)

        >>>[2,3,4,5]

        4.2 pop():不传值默认从最后一个开始删,删除的值有返回值

        l1.pop()                                    l1.pop(2)

        print(l1)                                    print(l1)

        >>>[1,2,3,4]        >>>[1,2,4,5]

4.3 del()
l = [1,2,3,4,5]
del l[2] # 删除索引为2的元素
print(l)
>>>[1, 2, 4, 5]

5.len()
print(len(l))
>>>5

6.成员运算 in 和 not in
l = [1,2,3,4,5]
print(1 in l)
>>>True
print(6 not in l)
>>>True

7.reverse()颠倒列表内元素顺序
l = [1,2,3,4,5]
l.reverse()
print(l)
>>[5,4,3,2,1]

8.sort()给列表内所有元素排序
l = [2,1,4,3,5] # 排序时列表内元素必须为相同类型,否则报错
l.sort()
print(l)
>>[1,2,3,4,5] # 默认从小到大排序
l.sort(reverse = True) # reverse用来判断是否颠倒排序,默认为False
>>[5,4,3,2,1]

9.clear() # 清空列表数据
l.clear()
>>>[]

10.循环
 for i in l:
    print(i)
   

5、元组

  用途:储存多个任意类型的元素,无法修改,只能取不能存。

  定义方式:在()中用逗号分隔任意类型的值

      t1 = ('a','b')  # t1 = tuple(('a','b'))

      若只有一个值,需要在值后面添加逗号,否则为字符串(‘a’,)

  使用:1.索引取值(正反都可取)

     2.索引切片

     3.成员运算 in 和not in

     4.len()

     5.循环for

     内置方法 :

          1.count()  统计元素个数

          2.index()获取元素位置

  元组是一个有序不可变类型,可以存多个值

六、字典

  定义:通过{}储存数据,以key:value来定义键值对数据,每个键值对用逗号分隔

    d1 = {'name':'lzn','age':25}   # d1 = dict({......})

    d1 = dict(name = 'lzn',age = 25)

  使用:

    1.按key:value的关系取值(可存可取)

    print(d1['name']) >>> lzn

      更改value:d1['name'] = 'Bill'

    print(d1) >>> {'name':'Bill','age':25}

      添加键值对:d1['gender'] = 'male'

    print(d1) >>>{'name':'Bill','age':25,'gender':'male'}

    2.成员运算 in 和 not in

    3.len() 获取当前字典中键值对个数

  内置方法:

    1.get() 获取指定key的值,如果值不存在,默认返回None

      

d1 = {'name':'lzn','age':25,'gender':'male'}
print(d1.get('name'))
>>>lzn
print(d1.get('hobby'))
>>>None
print(d1.get('hobby',666))   # 通过设置第二个参数改变返回内容
>>>666

    2.keys(),values(),items()

d1 = {'name':'lzn','age':25,'gender':'male'}
print(d1.keys())
>>>dict_keys(['name', 'age', 'gender'])
print(d1.values())
>>>dict_values(['lzn', 25, 'male'])
print(d1.items())
>>>dict_items([('name', 'lzn'), ('age', 25), ('gender', 'male')]) # 返回值列表套元组,每个键值对存在于元组

    3.循环遍历

for key in d1.keys():
    print(key)
    >>>name
       age
       gender
for value in d1.values():
    print(value)
    >>>lzn
       25
       male
for key,value in d1.items():
    print(key,value)   
    >>>name lzn
       age 25
       gender male
for item in d1.items():
  print(item)
  >>>('name', 'lzn')
    ('age', 25)
    ('gender', 'male')

    4.pop():指定key进行删除,返回值为对应的value

  

d1 = {'name':'lzn','age':25,'gender':'male'}
print(d1.pop('name'))
>>>lzn
print(d1)
>>>{'age': 25, 'gender': 'male'}

    5.popitem():随机弹出一个键值对,有返回值,返回元组

d1 = {'name':'lzn','age':25,'gender':'male'}
print(d1.pop('name'))
>>>lzn
print(d1)
>>>{'age': 25, 'gender': 'male'}

    6.update:用新字典替换旧字典,有则更改,无则增加

d1 = {'name':'lzn','age':25,'gender':'male'}
d2 = d1.update({'name':'Bill'})
print(d1)
d3 = d1.update({'hobby':'basketball'})
print(d1)
>>>
{'name': 'Bill', 'age': 25, 'gender': 'male'}
{'name': 'Bill', 'age': 25, 'gender': 'male', 'hobby': 'basketball'}

    7.fromkeys() 生成一个新字典,以第一个参数(列表)中的元素为key,第二个参数为value,组成新的字典

print(dict.fromkeys(['yyh','zwl'],'gay'))
>>>
{'yyh': 'gay', 'zwl': 'gay'}

    8.setdefault()

# key存在则不做任何修改,并返回对应value
d2 = d1.setdefault('name','Bill')
print(d2)
>>>lzn
# key不存在则新增键值对,有返回值,返回新增value
d3 = d1.setdefault('hobby','basketball')
print(d3)
>>>basketball
print(d1)
>>>{'name': 'lzn', 'age': 25, 'gender': 'male', 'hobby': 'basketball'}

字典类型总结:无序可变类型,可存多个值  

  七、集合

    用途:去重,关系运算。

    定义方式:用{}储存,每个元素用逗号分隔

    定义空集合需要用set(),  d = {}默认为字典

    类型转换:但凡能被for循环遍历的数据类型(遍历出的数据类型必须为不可变类型)都可以传给set()转化为集合类型

      

s = set([1,2,3,4])
s1 = set(('a','b','c','d'))
s2 = set({'name':'lzn','age':25})
s3 = set('jason')
print(s)
>>>{1, 2, 3, 4}
print(s1)
>>>{'b', 'd', 'a', 'c'}
print(s2)
>>>{'name', 'age'}
print(s3)
>>>{'j', 'n', 's', 'o', 'a'}

    使用:

      1.去重:只能针对不可变类型,去重之后无法保留之前的顺序

l = ['a','b','a','c']
s = set(l)
print(s) # 将列表转换为集合
>>>{'a', 'c', 'b'}
l1 = list(s) # 再将集合转换为列表,列表顺序为集合随机生成的顺序
print(l1)
['a', 'c', 'b']

          针对不可变类型,又能保持原来的顺序  举例:

l = [{'name':'lzn','age':25,'gender':'male'},
     {'name':'lzn','age':25,'gender':'male'},
     {'name':'Bill','age':18,'gender':'male'},
     {'name':'Abby','age':20,'gender':'female'},
     {'name':'lzn','age':25,'gender':'male'}]
new_l = []
for dict in l:
    if dict not in new_l:
        new_l.append(dict)
print(new_l)
>>>[{'name': 'lzn', 'age': 25, 'gender': 'male'}, {'name': 'Bill', 'age': 18, 'gender': 'male'}, {'name': 'Abby', 'age': 20, 'gender': 'female'}]

    2.关系运算:合集|   交集&   差集-   对称差集^   是否相等==  父集>  >=    子集<   <=

s1 = {'lzn','Bill','Abby','Tony'}
s2 = {'Bill','Lucy','yyh','Jack'}
print(s1 | s2) # 合集 求s1 s2 所有好友 重复只留一个
>>>{'lzn', 'Lucy', 'Abby', 'Bill', 'yyh', 'Jack', 'Tony'}
print(s1 & s2) # 交集 s1 s2 共同好友
>>>{'Bill'}
print(s1 - s2) # 差集 s1独有的好友
>>>{'lzn', 'Tony', 'Abby'}
print(s2 - s1) # 差集 s2独有的好友
>>>{'Jack', 'Lucy', 'yyh'}
print(s1 ^ s2)  # 对称差集 s1 s2 独有的好友们(即去掉共同好友)
>>>{'lzn', 'Lucy', 'Abby', 'yyh', 'Jack', 'Tony'}
print(s1 == s2) # 值是否相等
>>>False
#父集  子集

s = {1,2,3}
s1 = {1,2}
s2 = {1,3,5,6}
print(s > s1)
>>>True
print(s >= s1)
>>>True
print(s2 > s)
>>>False
print(s2 >= s)
>>>False
print(s1 < s)
>>>True
print(s1 <= s)
>>>True

    

    

    

原文地址:https://www.cnblogs.com/littleb/p/11798589.html