列表
# list.append():在末尾追加新的元素值 list1 = [1, 2, 3, 4] list1.append(5) print(list1) # list.extend():在末尾追加另一个列表 list2 = [1, 2, 3, 4] list2.extend([5, 6, 7]) print(list2) # list.insert():在下标处添加一个元素,不覆盖原数据,原数据顺延 list3 = [1, 2, 3, 4] list3.insert(2, 5) print(list3) # list.pop():移除列表中指定下标处的元素(默认移除最后一个元素),并返回删除的数据 list4 = [1, 2, 3, 4, 5] print(list4.pop(4)) print(list4) # list.remove():移除列表中的某个元素第一个匹配的结果 list5 = [1, 2, 3, 4, 5] list5.remove(5) print(list5) # list.clear():清除列表中所有数据 list6 = [1, 2, 3, 4] list6.clear() print(list6) # list.index():从列表中找出第一个匹配的索引值 list7 = [1, 2, 3, 4] print(list7.index(4, 2, 4)) # len(list):列表中元素个数 list8 = [1, 2, 3, 4, 5] print(len(list8)) # max(list):获取列表中的最大值 list9 = [1, 2, 3, 4] print(max(list9)) # min(list):获取列表中的最小值 list10 = [1, 2, 3, 4] print(min(list10)) # list.count():查看元素出现的次数 list11 = [1, 2, 3, 3, 3] list11_1 = list11.count(3) print(list11_1) sum = 0 # 删除重复的元素 while sum < list11_1: list11.remove(3) sum += 1 print(list11) # list.revers():列表反转 list12 = [1, 2, 3, 4] list12.reverse() print(list12) # list.sort():顺序排列 list13 = [4, 3, 2, 1] list13.sort() print(list13)
元组
# tuple():元组用 () 表示,元组不可变, 元组里包含列表或其他集合里面的值可以变 # tuple[]:根据下标取值 tuple1 = ('a', 'b', 'c', 'd') print(tuple1[0]) # tuple[][]:二维元组取值 tuple2 = (('a', 'b', 'c', 'd'), (1, 2, 3, 4)) print(tuple2[0][1]) # max(tuple) min(tuple):取元组最大值和最小值 tuple3 = (1, 2, 3, 4) print(max(tuple3)) print(min(tuple3)) # value in tupel:元组是否包含指定值 tuple4 = ('a', 'b', 'c', 'd') print('a' in tuple4)
集合
# set:集合,无序和无重复的集合 # 创建set需要有一个list或者tuple或者dict作为输出集合 s1 = set([1, 2, 3, 4]) # 可以添加重复的,但不会生效 s1.add(2) print(s1) # set的元素不能是列表,因为列表是可变的 # s1.add([5, 6, 7, 8]) print(s1) # set的元素不能是字典,因为字典是可变的 # s1.add({1:'a'}) print(s1) # set.update():插入整个list、tuple、字符串,打碎插入 s2 = set([1, 2, 3, 4]) s2.update([5, 6, 7, 8]) print(s2) s2.update(['a', 'b', 'c']) print(s2) s2.update({'d':'d'}) print(s2) s2.update('zhg') print(s2) # set.remove():删除set元素,遍历删除 s3 = set([1, 2, 3, 4]) for i in s3: print(i) # set没有索引 # set交集 s4 = set([1, 2, 3, 4]) s5 = set([1, 2,]) a1 = s4 & s5 print(a1) # set并集 a2 = s4 | s5 print(a2)
字典
# 注意:字典是无序的 # dict[key]:访问value dict1 = {1:'a', 2:'b', 3:'c'} print(dict1[1]) # dict.get[key]:访问value print(dict1.get(1)) # for key in dict:遍历key for key in dict1: print(key) # for value in dict.values:遍历value for value in dict1.values(): print(value) # for key, value in dict.items():遍历key和value for key, value in dict1.items(): print(key, value) # for key, value in enumerate(dict):遍历key和value for key, value in enumerate(dict1): print(key, value) # dict和list比较:
# dict: # 1.查找和插入速度极快,不会随着key-value的增加和变慢 # 2.需要占用大量的内存,内存浪费多 # list: # 1.查找和插入的速度会随着数据量的增多而减慢 # 2.占用空间小,浪费内存少
字符串
#字符串切割 # split(str='', num) # 以str为分隔符截取字符串,指定num,则仅截取num个字符串 str1 = 'mi++++ka++++++sa' str2 = str1.split('+', 2) print(str2) num = 0 for i in str2: if len(i) > 0: num+=1 print(num) # splitlines(keepends),按照 /r /n 分隔 # keepends==Ture:保留换行符,默认为flase,不保留 str3 = '''ssssss sssss aaaaa''' print(str3.splitlines(True)) # 字符串组合 # ''.join(seq):以指定的字符串将seq组合成字符串 list1 = ['m', 'i', 'k', 'a', 's'] str4 = ','.join(list1) print(str4) # max() min():以编码比较大小 str5 = 'mikasa' print(max(str5)) print(min(str5)) # replace(oldstr,newstr,count):替换掉字符串中指定字符 # 用newstr替换掉oldstr,默认是全部替换,如果指定了count,只替换前count个 str6 = 'mikasa asa asa' str7 = str6.replace('asa', 'san', 1) print(str7) # 创建一个字符串映射表, a 对应 6, c 对应 5 str8 = str.maketrans('ac', '67') str9 = 'name, aaaa, cccc' str10 = str9.translate(str8) print(str10) # str.startswith():判断字符串是否以指定指定字符开头,是返回True,否返回false str10 = 'mikasa' print(str10.startswith('z')) # str.encode(encoding='utf-8', errors='strict'):编码, str11 = 'mikqwewqeqrtreyrturtu' print(str11.encode('utf-8')) # str.decode():解码 注意:解码时要与编码时的格式一致 str12 = str11.encode('utf-8') print(str12.decode('gbk', 'ignore')) # ignore:忽略错误 # str.isalpha():如果字符串中至少有一个字符且所有字符都是字母,返回True,否者返回False str13 = 'mikasa' print(str13.isalpha()) # str.isalnum():如果字符中至少有一个字符,且所有的字符都是字母或者数字返回True,否则返回False str14 = 'mikasa' print(str14.isalnum()) # str.isupper():如果字符串中至少有一个英文字符且所有的英文字符都是大写返回True,否则返回False # 注意:只看英文字符是否全为大写,不看其他字符 print('MIK123'.isupper()) # str.lower():如果字符串中至少有一个英文字符且所有英文字符都是小写返回True,否则返回False print('mik123'.islower()) # str.digit():如果字符串中只包含数字返回True,否则返回False print('123'.isdigit()) # str.number():如果字符串中只包含数字返回True,否则返回False print('123'.isnumeric()) # str.decimal():如果字符串中只包含十进制字符返回True,否则返回False print('14'.isdecimal()) # str.isspace():如果字符串中只包含空格则返回True,否则返回False print(' '.isspace()) print('\n'.isspace()) print('\t'.isspace()) print('\r'.isspace())
# str.ljust:左对齐,自动补足 str1 = 'mik' print(str1.ljust(40, '*')) # str.rjust:右对齐,自动补足 str2 = 'mik' print(str2.rjust(40, '*')) # str.count:返回字符串中指定字符出现的次数,默认从头到尾 str3 = 'mik mik mik' print(str3.count('mik')) # str.count(str, start=0, end=(str)):从指定范围返回指定字符串出现的次数 print(str3.count('mik', 3, len(str3))) # str.find(str):从左到右检查str字符串中是否包含在字符串中 # 可以指定范围,默认从头到尾,得到的是第一次出现的开始下标 str4 = 'mik mik mik' print(str4.find('i')) # str.rfind(str):从右到左查找 print(str4.rfind('i')) # str.find(str, start=0, end=(str)):指定开始范围 print(str4.find('i', 4, len(str4))) # 不包含返回 -1 print(str4.find('i')) # str.index(str, start=0, end=(str)) # 与str.find()一样,只不过str不存在的时候返回一个异常 str5 = 'mik mik mik' print(str5.index('h')) print(str5.index('z', 3, len(str5))) # str.lstrip()截掉字符串左侧字符,默认截掉空格 str6 = '+++++mik mik mik-----' print(str6.lstrip('+')) # 截掉右侧 print(str6.rstrip('-')) # 截掉指定字符 print(str6.strip('+-')) # ord():ASCII表转换,数字转字母 str7 = 'm' print(ord(str7)) # chr():字母转数字 str8 = 69 print(chr(str8))
循环
# enimerate:同时遍历下标和元素 for index, str in enumerate([1, 2, 3, 4]): print(index, str) # 取100之内数的和 sum = 0 for i in range(100): sum += i print(sum) num = 1 while num <= 5: print('num = %d' %(num)) num += 1 index = 0 str1 = 'thun iso ft' while index < len(str1): print('str[%d] = %s' %(index, str1[index])) index += 1
文件操作
''' 文件读取过程: 1、打开文件 2、读取文件内容 3、关闭文件 ''' ''' 一、打开文件 open(path, flag, encoding, errors) path:要打开文件的路径 flag:打开方式 r :以只读方式打开文件,文件的指针放在文件的开头 rb :以二进制格式打开文件用于只读,文件的指针放在文件的开头 r+ :打开文件用于读写,文件的指针放在文件的开头 w :打开文件只用于写入,如果该文件已经存在会覆盖,如果文件不存在则创建新文件 wb :打开文件只用于写入二进制内容,如果该文件已经存在会覆盖,如果文件不存在则创建新文件 wb+:二进制格式打开文件读写,文件存在则打开文件,并从开头开始编辑,原有内容会被删除,文件不存在则创建新文件。一般用于非文本文件如图片等 w+ :打开一个文件只用于读写,如果该文件已经存在会覆盖,如果文件不存在则创建新文件 a :打开一个文件用于追加,如果该文件存在,文件指针会放在末尾 a+ :打开一个文件用于追加,如果该文件存在,文件指针会放在末尾,如果该文件不存在则创建新文件 ab+:二进制格式打开一个文件用于追加,文件存在则指针会在文件的结尾,文件不存在则创建新文件 encoding:编码方式 errors:错误处理 ''' f = open('file-1.txt', 'r', encoding='utf-8', errors='ignore') # 二、读取文件 # read():读取文件全部 r1 = f.read() print(str1) # read(num):读取指定字符数 str2 = f.read(10) print(str2) # readline():按行读取 list3 = f.readline() print(list3) # readline(num):读取指定字符数 list4 = f.readline(10) print(list4) # readlines():读取全部行并返回列表 list5 = f.readlines() print(list5) # readlines(num):若给定的数字大于第一行的字符的总个数,返回实际读取字节的行数 list6 = f.readlines(50) print(list6) # with open(path, flag, encoding) as f: 打开并自动关闭 with open('file-1', 'r', encoding='utf-8') as f2: print(f2.read()) f.seek(num): 文件指针往左偏移的位数
# 将信息写入缓冲区 f = open('file.txt', 'w') f.write('mik') # f.flush():刷新缓冲区 # 直接把内部缓冲区的数据立刻写入文件,而不是被动的自动刷新缓冲区写入 # 刷新缓冲区的方式, flush()、close()、缓冲区满了、手动刷新、\n f.flush() while True: pass f.close() # with open(path, flag, encoding) as f: with open('file.txt', 'w', encoding= 'utf-8') as f: f.write()
# 数据持久性模块 import pickle # pickle.dump(str, file):写入 myList = [1, 2, 3, 4, 5, 'qwer'] path = 'file-3.txt' f = open(path, 'wb') pickle.dump(myList, f) f.close() # pikle.load(file):读取 f1 = open(path, 'rb') tuple1 = pickle.load(f1) print(tuple1) f1.close()
# 编码 # python3.7不支持以二进制指定编码打开文件 path = 'file-3.txt' with open(path, 'wb+') as f1: str1 = 'zhg' f1.write(str1.encode('utf-8')) # 解码 with open(path, 'rb') as f2: data = (f2.read()).decode('utf-8') print(data)
os模块
import os # os:包含了普遍的操作系统的功能 # os.name:获取操作系统类型 # nt=Windows posix=Linux print(os.name) # os.uname():打印操作系统详细信息,Windows不支持 # print(os.uname()) # os.environ:查看系统环境变量 print(os.environ) # os.environ.get(str):获取指定环境变量 print(os.environ.get('LOCALAPPDATA')) # os.curdir:获取当前目录 print(os.curdir) # os.getcwd()获取当前工作目录,即当前python脚本所在的目录 print(os.getcwd()) # os.listdir():以列表形式返回指定目录下的所有文件 print(os.listdir(r'F:/pythonLearn/')) # os.makedir(filepath):在当前目录下创建新目录 # print(os.makedirs('test')) # os.rmdir():删除目录 # print(os.rmdir('test')) # os.path:获取当前目录 print(os.path) # os.stat(filepath):获取文件属性 # print(os.stat('test')) # os.rename(filename, newfilename):重命名文件 # print(os.rename('test', 'zhg')) # os.remove(filename):删除普通文件 # print(os.remove('file-3.txt')) # 运行shell命令 # os.system('notepad')#:打开记事本 # os.system('write'):打开写字板 # os.sysytem('mspaint'):打开画板 # os.system('shutdown -s -t 500'):在多少分钟后关机 # os.system('shutdown -a'):取消自动关机 # os.system('taskkill /f /im notepad.exe')#:关闭打开的指定程序 # os.system('taskkill /f /im QQ.exe') # 有些方法存在os模块里,还有些存在于 os.path # 查看当前的绝对路径 print(os.path.abspath('./os模块.py')) # os.path.join(path1, path2):路径的拼接,参数2开始不要有 / path1 = 'f:/' path2 = 'pythonLearn' print(os.path.join(path1, path2))