Data Type
number:
intger:
32位机器上为 -2**31 - 2**31
64位机器上为-2**63 - 2**63
在python 2 中年当字符串超了后,会自动变成long intger
在python 3 中没有相关的机制,无论intger多大均为int类型
float:
表示方法:
方法一:普通表示法-0.002341
方法二:科学计数法-52.3E-4
Boolean
True or False 0 or 1
if True: print("Boolean value is True") a = 0 if a: print("Boolean value is True")
String
字符串是可以拼接的
name = "boy's name is Bruce" #显示字符串中有多少个某字母 print(name.count("a")) #将字符串的首字符大写() print('alex li'.capitalize()) print('alex li'.title())# 把word首字符变为大写 #字符串居中,左对齐,右对齐,并不足50这个长度,用- print(name.center(50, "-")) print(name.ljust(50, '-')) print(name.rjust(50, '-')) print('lex li'.zfill(50)) #不够的用零填充 #string encode bytes print(name.encode()) #判断string是不是以某结尾 print(name.endswith("ce")) name = "boy's \t name is Bruce" #定义字符串中tab键的长度 print(name.expandtabs(tabsize=30)) #从下标1开始自左向右查找字符串,找到返回起始下标,未找到返回-1 print(name.find("name", 1)) # 用于切片,字符串也可以切片 print('alex li'.rfind('l')) # 找到最右边一个l,然后按照从左往右写编号 #经常用的format,用于将字符串中{}更换为相应的变量值 format_name = "Bruce" format_age = 18 name = "name is {name},Age is {age}" print(name.format(name=format_name, age=format_age)) #format_map仅可以用dict格式 print(name.format_map({'name': 'bruce', 'age': 12})) #自左向右查某个字符的编号,区别于find()的是,如果没有某字符会报错 print(name.index('a')) #is相关方法 print('abc23'.isalnum()) #包含英文字符及1-9 - 为true 如果包含特殊字符则为false print('abc'.isalpha()) #纯英文字符 print('1.00'.isdecimal()) #十进制,比如16进制 print('12'.isdigit()) # 是否为整数 print('1A'.isidentifier()) # 判断是不是一个合法的标识符(是不是一个合法的变量名) print('1a'.islower()) # 是否为小写 print('33.33'.isnumeric()) #是不是只有数字在里面,相似于isdigit print(' '.isspace()) # 是不是一个空格 print('My Name Is'.istitle()) # 是不是每个首字符大写 print('Pring'.isprintable()) # 是不是可以打印的,主要是linux tty file dirve file print('AAAA'.isupper()) # 是不是全大写 #将某个仅包含string的序列,通过+组合成一整个string print('+'.join(["1", "2", "3"])) #如果字符串中有字母,则全小写or大写输出 print("AAaa1".lower()) print("AAaa1".upper()) print('Alex Li'.swapcase()) # 大写变小写 小写变大写 #去空格及回车系列 print('\n AE!\n'.lstrip()) # 去左边的回车及空格 print('\n AE! \n'.strip()) # 两边回车及空格都去 print('\n AE! \n'.rstrip()) # 去右边的回车及空格 # 建立字符串的对应关系,用来加密 p = str.maketrans("abcdef",'123456') print("a1cde".translate(p)) # 替换 print('bruce'.replace('r','L',1)) # 按照分隔符分割字符串为列表,空即为空格 print('alex li1'.split(' ')) print('alex\n+li'.splitlines()) #基本等同去split('/n'),优于split的是可以自动识别win及linux换行的不同
Bytes
字节类数据类型(二进制),区别于python2,在python3中年是独立的数据类型,主要用来存储音频或者视频之类。
bytes 与 string 可以互相转换,如在网络传输时,需要将string变为bytes类型并传输
bytes.decode = string string.encode = byte "aa".encode('utf-8')
List
import copy list = [] print("赋值为空的列表:{list1}".format(list1=list)) #存储: list = ["aa", "bb", "cc", "dd"] #取值: print("最简单的遍历:{list}".format(list=list)) print("可用于浅copy的遍历:{list}".format(list=list[:])) print("单个取值-左侧开始第一个:{list}".format(list=list[0])) print("单个取值-左侧开始第一个:{list}".format(list=list[-1])) # 0 = -0 不多解释 print("切片取值-正向切片-顾头不顾尾:{list}".format(list=list[0:2])) #list[3]无法取出,记住顾头不顾尾 print("切片取值-反向切片-顾头不顾尾:{list}".format(list=list[-3:-1])) #list[-1]无法取出,记住顾头不顾尾 print("切片取值-切片-':'左侧为空代表从头:{list}".format(list=list[:3])) #从头开始 print("切片取值-切片-':'右侧为空代表从头:{list}".format(list=list[1:])) #到尾部结束 print("切片取值-切片-步幅为2:{list}".format(list=list[::2])) # 跳着取值 #修改: list.append("ee") print("增加-在列表最后追加元素:{list}".format(list=list)) list.insert(-1, "gg") print("增加-在列表某元素前增加值:{list}".format(list=list)) list1 = ["ff", "11", "ff"] list.extend(list1) # 扩展,将列表合并 print("增加-将两个列表合并:{list}".format(list=list)) list_del = list.pop(4) #取值并删除某元素,默认删最后一个元素 print("删除-删除{list_del}后列表为:{list}".format(list_del=list_del, list=list)) del list[4] #通用删除,在python中可以删除很多东西 print("删除-通用删除-列表为:{list}".format(list=list)) list.remove("ff") #从左往右删除第一个匹配的 print("删除-根据元素值删除-列表为:{list}".format(list=list)) list[2] = "CC" print("修改-改值-列表为:{list}".format(list=list)) list.reverse() print("修改-反转-列表为:{list}".format(list=list)) list.sort() print("修改-排序-列表为:{list}".format(list=list)) #根据ASCII排序,从大到小(小写<大写<数字<特殊字符) #查询: print("查询-列表整体的元素数量:{list}".format(list=len(list))) print("查询-列表中aa的数量:{list}".format(list=list.count("aa"))) print("查询-列表中aa的编号:{list}".format(list=list.index("aa"))) list.clear() #清空列表 del list #删除列表 # 浅copy只copy第一层值,如果有二层列表只是copy内存地址 # 第一层中,二层列表存储为内存指针 list = ["LiuXiaoMing", "ChenTie", ["Tianqi", "tianxia"], "ZhongyaZhou"] # 区别于数字及字符串的赋值方式,如list2=list,并未生成任何独立的数据,仅仅是给予指针 # 即:变量的内存空间中存的是具体的值,而list,dict,tuple中存的是内存指针 # list2 = list[:] # 浅copy方法一 # list2 = list(list) # 浅copy方法二 list2 = list.copy() # 浅copy方法三 print("列表-修改-浅copy-list:{list1}".format(list1=list)) print("列表-修改-浅copy-list2:{list1}".format(list1=list2)) list[1] = "陈铁" list[2][0] = "天气" print("列表-修改-浅copy-list:{list1}".format(list1=list)) print("列表-修改-浅copy-list2:{list1}".format(list1=list2)) # 遍历的方法,用for遍历 for item in list: print("遍历方法一:", list.index(item), item) for index, item in enumerate(list): print("遍历方法二:", index, item) for item in enumerate(list): print("遍历方法三:", item) # import copy中的copy的copy等价于list.copy # copy.deepcopy为复制完全独立的两份数据 list = ["LiuXiaoMing", "ChenTie", ["Tianqi", "tianxia"], "ZhongyaZhou"] list2 = copy.deepcopy(list) print("列表-修改-深copy-list:{list1}".format(list1=list)) print("列表-修改-深copy-list2:{list1}".format(list1=list2)) list[1] = "陈铁" list[2][0] = "天气" print("列表-修改-深copy-list:{list1}".format(list1=list)) print("列表-修改-深copy-list2:{list1}".format(list1=list2)) list.clear() print("列表-修改-清空:{list1}".format(list1=list)) del list1 # 浅copy的作用,浅层列表存储个体拥有的,深层的地方存储共性的地方
tuple
# tuple类似于列表,又称为只读列表 # tuple只可以读及切片,一但赋值,不可修改 tup = ("aa", 1, "bb") tup_one_parameter = ("aa",) print(tup.index("bb")) print(tup.count("bb"))
dict
# dict 是一种key-vlaue的数据类型,通过key所在的索引来查数据,list中索引为位置,dict中索引为key # dict 是无序的,这种无序指的是不能人为的排序,基本上是按照创建顺序来排序,但是这个也不是一个稳定的方法 # hash值相同时,是不可控制的 # 字典内容扩容,当字典默认空间不够时,会自动扩容,扩容后键序就会发生变化 info = { 'stu1101': "TengLan Wu", 'stu1102': "LongZe Luola", 'stu1103': "XiaoZe Maliya", 'stu1101': "Cang JingKong", } print(info)