数据类型的操作方法


1、数字类型

  1、基本用途:int
    记录QQ、电话号码、年龄等

  2、定义方式
    a1 = 10 # a = int(10) 定义的数值为整形

# 十进制转化为其它进制
a2 = bin(10)  # 二进制
a3 = oct(10)  # 八进制
a4 = hex(10)  # 十六进制

其它进制转化成十进制
括号中前一位填写需要转化的数,后一位填写该数的进制
b2 = int(a2, 2)
b3 = int(a3, 8)
b4 = int(a4, 16)

2、字符串类型

  1、用途
    记录一些对事物的描述,例如人名、动物名字、风景等

  2、定义方式
    在' '、" "、""" """、''' '''中添加字符、中文汉字、数字等

msg = 'hello'  # msg=str('hello')
res1 = str(1)
res2 = str([1, 2, 3])
ret = """
你好啊!
大家好才是真的好
"""


  3、常用操作+内置的方法
    mg = 'hello world'

    优先掌握的操作
    1、按索引取值
print(mg[2])  # 取索引为2的元素

    2、切片(根据索引进行切片,顾头不顾尾)
print(mg[0:3])  # 取索引0到2的元素
print(mg[0:5:2])  # 2为步长,意为隔一个元素取一个元素
print(mg[0:3:-1])  # -1为反方向取值,而0到3为正向取值,故什么都不输出
print(mg[0:])  # 正向取所有的元素
print(mg[-1:])  # 反向取所有的元素
print(mg[-1::-2])  # 反向隔一个取一个元素取所有的元素
print(mg[::-1])  # 反向取所有的元素
print(mg[::1])  # 正向取所有的元素
print(mg[:])  # 正向取所有的元素

    3、长度len
print(len(mg))  # 计算字符串的长度

    4、判断元素是否存在字符串中:not in; in
print("h" in mg)  # 单个元素
print("he" in mg)  # 相连的多个元素
print("h" not in mg)  # 单个元素
print("he" not in mg)  # 相连的多个元素

    5、去掉字符串两边的字符:strip
# 可以添加多个想要去掉的字符
print(mg.strip("hdo"))  # 只去掉两边的字符串
print(mg.lstrip("hd"))  # 只去掉左边的
print(mg.rstrip("hd"))  # 只去掉右边的

    6、split:以某个字符为分界点分割整个字符串。分割的结果为一个列表,其中不包括作为分割点的字符
print(mg.split("o"))  # 以o为分界点

    7、循环
mg = "hello world"
for i in mg:
    print(i)  # h e l l o  w o r l d

    需要掌握的
    1、strip、lstrip、rstrip

    2、lower(全部转化成小写),upper(全部转化成大写)
print(mg.lower())  # 全部转化成小写
print(mg.upper())  # 全部转化成大写

    3、startswith、endswith
print(mg.startswith("h"))  # 判断是否以h开头
print(mg.startswith("he"))  # 判断是否以he开头
print(mg.endswith("h"))  # 判断是否以h结尾
print(mg.endswith("he"))  # 判断是否以he结尾

    4、format的三种玩法
# 用大括号接收数据,被接受的数据按顺序排列好
print("my name is {}, my age is {}".format("weishen", 20))

# 被接受的数据可以不安顺序排列,大括号在接收时通过数据的索引接收
print("my name is {0}, my age is {1}".format("weishen", 20))

# 被接受的数据可以不安顺序排列,大括号在接收时通过数据的变量名接收
print("my name is {name}, my age is {age}".format(name="weishen", age=20))

    5、split,rsplit

    6、join:将可迭代对象内的元素用字符或数字连接,形成一个新的字符串
# join在连接各个元素时,在内部进行了循环取值,对于字典而言,是对其键的拼接
dic = {"name": "alex", "age": 10}
print("|".join(dic))

lis = ["name", "age"]
print("|".join(lis))

    7、replace:用新的字符代替原有的字符
print(mg.replace('world', 'sb', 1))  # 第一个为原有的字符,第二个为新字符,需要替换的个数

    8、isdigit:判断字符串是否为全数字
print('101'.isdigit())
print(mg.isdigit())

    需要了解的内置方法
    1、find,rfind,index,rindex,count

# find没有返回值,找不到返回-1;index有返回值,找不到会直接报错
print(mg.find('alex'))
print(mg.find('alex', 0, 3))

print(mg.index('alex'))
print(mg.index('alex', 0, 3))

# find找不到返回-1;index找不到会直接报错
print(mg.rfind('he'))
# print(mg.rindex('ho'))

print(mg.count('l'))  # 统计字符在字符串中出现的次数

    2、center,ljust,rjust,zfill
print('egon'.center(50, '*'))  # 字符串居中,字符串长度小于总长度时,空白处用*填满
print('egon'.ljust(50, '*'))  # 字符串左对齐,字符串长度小于总长度时,空白处用*填满
print('egon'.rjust(50, '*'))  # 字符串右对齐,字符串长度小于总长度时,空白处用*填满
print('egon'.zfill(50))  # 字符串左对齐,字符串长度小于总长度时,空白处用0填满

    3、expandtabs
print('a\tb'.expandtabs(1))  # 在字符间空出1个Tab,数量有参数决定

    4、captalize,swapcase,title
print('hEllo'.capitalize())  # 字符串的首字母大写,其它的小写
print('hElLo'.swapcase())  # 字符串中字母大小写互换
print('egon is nbbbb1bvvv'.title())  # 每个单词的第一个字母大写,若一个单词中有非字母的字符,则以该非字母的字符为分界点分为两个单词在将每个单词的第一个字母大写

    5、is数字系列
# 在python3中
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
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())

    6、is其他
print('abc你'.isalpha())  # 字符串中包含的是字母或者中文字符

# 字符串中包含的是字母(中文字符)或数字
print('ab'.isalnum())
print('123123'.isalnum())
print('ab123'.isalnum())

  字符串数据类型总结:1、存一个值 2、有序 3、不可变


3、列表类型

  1 用途:存放多个值,可以根据索引存取值

  2 定义方式:在[]内用逗号分割开多个任意类型的值

l1 = list(['egon', 'lxx', 'yxx'])
print(l1)  # ['egon', 'lxx', 'yxx']
l2 = list('hello')  # list就相当于调用了一个for循环依次取出'hello'的值放入列表
print(l2)  # ['h', 'e', 'l', 'l', 'o']
l3 = list({'x': 1, 'y': 2, 'z': 3})
print(l3)  # ['x', 'y', 'z']

  3、常用操作+内置的方法
    优先掌握的操作
    1、按索引存取值(正向存取+反向存取):即可存也可以取
      该方法与字符串中的方法一样,需要注意的时,列表的值是可以改变的,列表是可变数据类型

print(id(l1))  # 2931430166152
l1[0] = "alex"
print(l1, id(l1))  # ['alex', 'lxx', 'yxx']  2931430166152

    2、切片(顾头不顾尾,步长)
      切片操作与字符串一样

    3、长度
l4 = ['egon', 'lxx', 'yxx', 444, 555, 66666, [1, 2, 3]]
print(len(l4))  # 7

    4、成员运算in和not in
      与字符串成员运算一样

    5、追加:append
# 在列表最后一个元素后面添加新的元素
l5 = ['egon', 'lxx', 'yxx']
l5.append(44444)
l5.append(55555)
print(l5)  # ['egon', 'lxx', 'yxx', 44444, 55555]

    6、insert:往指定索引前插入值
# 需要两个参数,第一个为索引,第二个为需要插入的元素
l6 = ['egon', 'lxx', 'yxx']
l6.insert(0, 11111)
print(l6)  # [11111, 'egon', 'lxx', 'yxx']
l6.insert(2, 2222222)
print(l6)  # [11111, 'egon', 2222222, 'lxx', 'yxx']

    7、删除:del、pop、remove
l7 = ['egon', 'lxx', 'yxx']

# del
del l7[1]
print(l7)  # ['egon', 'yxx']

# pop
res = l7.pop(-1)  # 按照索引删除值(默认是从末尾删除),返回删除的那个值
print(l7, res)  # ['egon', 'lxx']  yxx

# remove
res = l7.remove('lxx')  # 指定要删除的值,返回是None
print(l7, res)  # ['egon', 'yxx']  None
    
    8、循环
l8 = ['egon', 'lxx', 'yxx']
for i in l8:
    print(i)  # egon lxx yxx

    需要掌握的操作
l9 = ['egon', 'lxx', 'yxx']
print(l9.count("egon"))  # 计算列表中指定元素的个数  1

# index:返回元素索引
print(l9.index("egon"))  # 查找列表中是否存在指定元素,若存在,返回改元素的索引,若不存在,则报错  0
print(l9.index("egon", 0, 2))  # 规定起始索引和结束索引  0

items = ['a', 'b', 'c']
for item in items:
    l9.append(item)
l9.extend(items)
print(l9)  # ['egon', 'lxx', 'yxx', 'a', 'b', 'c', 'a', 'b', 'c']

l10 = ['egon', 'egon', 'lxx', 'yxx', 444, 555, 66666]
l10.reverse()  # 反序
print(l10)  # [66666, 555, 444, 'yxx', 'lxx', 'egon', 'egon']

posted on 2019-07-03 18:45  so_interesting  阅读(342)  评论(0编辑  收藏  举报

导航