python基础篇_002_基础数据类型 Python基础数据类型
1.int
# int 用于计算 num = 3 # int 与其他数据类型转换 int_to_str = str(num) # 数字加引号 print(int_to_str) int_to_bool = bool(num) # 非0 为True 否则为False print(int_to_bool)
2.bool
# bool True False 用于判断真假 b = True # bool于其他类型之间转换 bool_to_int = int(b) # True 1 False 0 print(bool_to_int) bool_to_str = str(b) # True False 加引号 print(bool_to_str)
3.str
3.1字符串索引和切片
"""字符串索引 下标从0开始,最后一位为-1 """ name = "zhangsan" print(name[0]) # 取第一个 print(name[-1]) # 取最后一个
"""字符串切片 获取字符串中的一段字符 原则:顾头不顾尾 """ name = "zhangsan" print(name[0:5]) # zhang print(name[:5]) # zhang 为0时可省略 print(name[5:]) # san取到最后 """步长""" print(name[:5:2]) # zag print(name[:-4:-1]) # nas
3.2字符串常用方法
"""1.首字母大写""" name = "zhangsan is my Name" print(name.capitalize()) # Zhangsan is my name 后面的大写也会改为小写 """2.特殊字符分隔,首字母大写""" print(name.title()) # Zhangsan Is My Name name = "dsa68fud dnsa%asdo*mmfd" print(name.title()) # Dsa68Fud Dnsa%Asdo*Mmfd 特殊字符+数字+空格等 """3.全部大写/小写""" name = "zhangsan is my Name" print(name.upper()) print(name.lower()) """4.判断字符串开头或者结尾""" name = "zhangsan" print(name.startswith('z')) print(name.startswith("zhan")) print(name.endswith("n")) print(name.endswith("san")) """5.字符或者切片出现次数""" name = "zhangsan" print(name.count('a')) print(name.count("an")) # 如果没有返回0 """6.字符串分割""" name = "zhangsan is my Name" print(name.split()) # 默认分割符为空格,返回一个列表 print(name.split('a')) # 指定分割符分割 """7.首尾空格去除""" name = " zhangsan is my Name " print(name.strip()) # 首尾空格 print(name.lstrip()) # 左边空格 print(name.rstrip()) # 右边空格 name = "**zhangsan is my Name**" print(name.strip("*")) # 首尾* """8.format三种形式""" info = "my name is {},my age is {},my hobby is{},my name is {}!".format('zhangsan', 20, 'study', 'zhangan') print(info) info = "my name is {0},my age is {1},my hobby is{2},my name is {0}!".format('zhangsan', 20, 'study') print(info) info = "my name is {name},my age is {age},my hobby is{hobby},my name is {name}!".format(name='zhangsan', hobby='study', age=20) print(info) """9.替换""" name = "zhangsan" print(name.replace('a', 'b')) # zhbngsbn print(name.replace('a', 'b', 1)) # zhbngsan """10.is相关""" name='abcd123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
4.list
4.1列表索引和切片
"""列表的索引""" li = [1, 2, 'a', 'b'] print(li[0]) print(li[-1])
# 类似于字符串
"""列表的切片""" li = [1, 2, 'a', 'b'] print(li[0:2])
# 类似于字符串,得到的是新列表
4.2列表的增
# append 在列表最后添加 li = [1, 2, 'a', 'b'] li.append('c') # [1, 2, 'a', 'b', 'c'] print(li) # insert 指定索引位置添加 li = [1, 2, 'a', 'b'] li.insert(1, 'insert') print(li) # [1, 'insert', 2, 'a', 'b'] # 迭代追加 li = [1, 2, 'a', 'b'] li.extend("cdef") print(li) # [1, 2, 'a', 'b', 'c', 'd', 'e', 'f'] li = [1, 2, 'a', 'b'] li.extend([3, 4, 5]) print(li) # [1, 2, 'a', 'b', 3, 4, 5]
4.3列表的删
# pop 指定索引位置删除 li = [1, 2, 'a', 'b'] li.pop(0) # print(li) # [2, 'a', 'b'] print(li.pop(0)) # 返回被删除元素 li.pop() print(li) # ['a'] 默认删除最后一个元素 # remove 删除指定元素 li = [1, 2, 'a', 'b'] li.remove('a') print(li) # [1, 2, 'b'] # clear 清空列表 li = [1, 2, 'a', 'b'] li.clear() print(li) # del 删除列表 li = [1, 2, 'a', 'b'] del li # print(li) 报错 # 删除指定索引元素 li = [1, 2, 'a', 'b'] del li[1] print(li) # [1, 'a', 'b'] # 删除指定切片元素 li = [1, 2, 'a', 'b'] del li[0:2] print(li) # ['a', 'b'] # 删除指定切片+步长元素 li = [1, 2, 'a', 'b'] del li[0:3:2] print(li) # [2, 'b']
4.4列表的改
# 根据索引赋值 li = [1, 'a', 'b'] li[0] = 'v' print(li) # 根据切片赋值 li = [1, 'a', 'b'] li[0:2] = 'dasf' print(li) # ['d', 'a', 's', 'f', 'b'] # 根据切片+步长赋值 一一对应 li = [1, 'a', 'b'] li[::2] = '对应' print(li) # ['对', 'a', '应']
4.5列表的查
li = [1, 2, 'a', 'b'] for i in li: print(i) i = 0 while i < len(li): print(li[i]) i += 1
4.6列表的其他方法
li = [1, 2, 'a', 'b'] # count 计算某个元素出现个数 print(li.count('a')) # len print(len(li)) # index print(li.index('a')) # sort li = [3,2,5,1,4] li.sort() print(li) # [1, 2, 3, 4, 5] li.sort(reverse=True) print(li) # [5, 4, 3, 2, 1] # reverse li.reverse() print(li) # join 可以实现将列表转成字符串,实现无缝连接 # 字符串转成列表 split li = ['1', '2', 'a', 'b'] print('_'.join(li)) # 1_2_a_b
4.7列表嵌套
# 列表嵌套: 列表中包含列表 li = [1, 2, [3, 4, 5], 6, 7, 8] print(li[2]) # [3,4,5] print(li[2][0]) # 3
5.tuple(不可变类型)
5.1元祖的索引和切片
tu = (1, 2, 3, [4, 5, 6]) # 通过索引获取元祖中的元素 print(tu[0]) # 通过切片获取元祖中的元素 print(tu[0:3]) # (1, 2, 3)
5.2元祖操作方法
# 直接从属于元组的元素不能更改,所以元组只能查看。 tu = (1, 2, 3, [4, 'a', 'b'], 'z') for i in tu: print(i) # 直接从属于元素元素不能更改,元祖中元素中的元素可能可以修改 tu = (1, 2, 3, [4, 'a', 'b'], 'z') tu[3][2] = 'c' print(tu) # (1, 2, 3, [4, 'a', 'c'], 'z') # count print(tu.count('a')) # len print(len(tu))
6.dict
6.0数据类型分类
# 数据类型分类 不可变数据类型:int str bool tuple 可哈希 可变数据类型:list dict set 不可哈希
字典: 由键值对组成 key:可哈希,不可变数据类型,且要唯一,相同的key,后面值会覆盖 value:任意
dict1 = {1: 'a', 'b': 'c', 'b': 'm'} print(dict1) # {1: 'a', 'b': 'm'}
6.1字典的增
# 通过key添加 dict1 = {1: 'a', 'b': 'c'} dict1['b'] = 'm' # 键值存在,则直接覆盖 print(dict1) dict1['c'] = 'd' # 键值不存在,则直接追加 print(dict1) # {1: 'a', 'b': 'm', 'c': 'd'} # setdefault添加 dict1 = {1: 'a', 'b': 'c'} # {1: 'a', 'b': 'c', 'c': None} dict1.setdefault('c') # 默认为None print(dict1) dict1 = {1: 'a', 'b': 'c'} # {1: 'a', 'b': 'c', 'c': 'ad'} dict1.setdefault('c', 'ad') # 没有此键,则添加,有此键,则不变 print(dict1) dict1 = {1: 'a', 'b': 'c'} dict1.setdefault('b', 'a') # 没有此键,则添加,有此键,则不变 print(dict1) # {1: 'a', 'b': 'c'}
6.2字典的删
# 通过key删除 dict1 = {1: 'a', 'b': 'c'} dict1.pop('b') # 有则删除,没有则报错,有返回值 print(dict1) # {1: 'a'} # pop加默认参数 dict1 = {1: 'a', 'b': 'c'} dict1.pop('c', None) print(dict1) # 没有不报错 # popitem 随机删除 dict1 = {1: 'a', 'b': 'c'} dict1.popitem() # 随机删除一个 print(dict1) # clear 清空 dict1 = {1: 'a', 'b': 'c'} dict1.clear() print(dict1) # del 删除 dict1 = {1: 'a', 'b': 'c'} del dict1['b'] print(dict1) del dict1
6.3字典的改
# 通过key修改 dict1 = {1: 'a', 'b': 'c'} dict1['b'] = 'f' print(dict1) # update dict1 = {1: 'a', 'b': 'c'} dict1.update(b='a1', g='g1') print(dict1) # {1: 'a', 'b': 'a1', 'g': 'g1'} # 有则修改,无则添加 dict1 = {1: 'a1', 'b': 'c1'} dict2 = {1: 'a', 'z': 'c2'} dict1.update(dict2) print(dict1) # {1: 'a', 'z': 'c2', 'b': 'c1'} # 有则修改,无则添加 print(dict2) # {1: 'a', 'z': 'c2'}
6.4字典的查
# 通过key查 dict1 = {1: 'a', 'b': 'f'} print(dict1['b']) # 有则打印,无则报错 # get dict1 = {1: 'a', 'b': 'f'} print(dict1.get('c')) # None print(dict1.get('c', '没有时,默认值')) # keys dict1 = {1: 'a', 'b': 'f'} print(dict1.keys()) # dict_keys([1, 'b']) # values dict1 = {1: 'a', 'b': 'f'} print(dict1.values()) # dict_values(['a', 'f']) # items dict1 = {1: 'a', 'b': 'f'} print(dict1.items()) # ict_items([(1, 'a'), ('b', 'f')])
6.5字典的其他方法
a, b = 1, 2 print('a=' + str(a), 'b=' + str(b)) # a=1 b=2 a, b = (1, 2) print('a=' + str(a), 'b=' + str(b)) # a=1 b=2 a, b = [1, 2] print('a=' + str(a), 'b=' + str(b)) # a=1 b=2 a, b = {'a': 1, 'b': 2} print(a, b) # a b 拆包 dict1 = {'a': 1, 'b': 2, 'c': 3} for k, v in dict1.items(): print('key=' + k) print('value=' + str(v)) # key=a # value=1 # key=c # value=3 # key=b # value=2
6.6字典嵌套
dict1 = { 'name': '张三', 'age': 21, 'friends': [{'name': '李四', 'age': 22}], 'hobby': {'hobby_1': '足球', 'hobby_2': '篮球', 'hobby_3': '跑步'} } # 获取张三 print(dict1['name']) # 获取李四 print(dict1['friends'][0]['name']) # 获取跑步 print(dict1['hobby']['hobby_3'])
7.set
7.1集合的增
set1 = {1, 2, 3, 'a'} # set集合中不可重复 print(set1) # {1, 2, 3, 'a'} set1 = {1, 2, 3, 'a'} set1.update('v') print(set1) # {1, 2, 3, 'v', 'a'} # 没有则添加 set1.update('a') print(set1) # {1, 2, 3, 'v', 'a'} # 有则不变
7.2集合的删
# 随机删除一个元素 set1 = {1, 2, 3, 'a'} set1.pop() print(set1) # 删除指定元素 set1 = {1, 2, 3, 'a'} set1.remove('a') print(set1) # 清空 set1.clear() # 删除 del set1
7.3集合的其他方法
# 交集 set1 = {1, 2, 3, 'a'} set2 = {2, 3, 'v'} print(set1 & set2) # {2, 3} print(set1.intersection(set2)) # 并集 set1 = {1, 2, 3, 'a'} set2 = {2, 3, 'v'} print(set1 | set2) # {1, 2, 3, 'a', 'v'} print(set1.union(set2)) # 差集 set1 = {1, 2, 3, 'a'} set2 = {2, 3, 'v'} print(set1 - set2) # {1, 'a'} print(set1.difference(set2))
8.其他
for i in range(1, 10): print(i)