sys模块:
import sys
print sys.path #打印出python的标准库及内部文件存在的路径
sys.argv #打印本脚本的路径
#-----------------------------还不懂---------------------------------
os模块:用于与操作系统的交互
os.system(‘dir‘) #打印当前目录下的文件,能够直接输出到屏幕上,但不能存储
os.popen(‘dir‘) #能够存储,输出可能是一个地址
os.popen(‘dir‘).read() #能输出具体值而不是一个地址
os.mkdir() #在当前目录下创建一个新的目录
#------------------------------------------------------------------------------------
自己写一个第三方库
脚本中用到的模块会先从当前目录下找,然后才会到全局变量中找 #解释器寻找模块的原则
自己写的脚本可以copy 到site-package文件夹下,就可以变成一个通用的模块了;也可以修改环境变量,在寻找的环境变量的路径中添加一个路径作文自己写的脚本的路径;这样就实现了在一个脚本中调用另一个脚本
.pyc文件:调用一个脚本,会出现一个.pyc的文件。当python 程序运行时,编译的结果则是保存在位于内存中的pycodeobject中,当python程序结束时,python解释器则将pycodeobject写到一个.pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找.pyc文件,如果找到,则直接运行.pyc文件,否则就编译;当原python文件改动之后,通过检测原文件和.pyc文件的更新时间来判断是否重新编译该文件。
数据类型:
1、数字;
int(整型):python3中已经不存在长整型和短整型之分
float(浮点数):小数
布尔值:1或0对应真和假
三元:result=a if 条件 else b
bytes类型:bytes类型和字符串在python3中分开,而在python2中是不分开的。bytes是指二进制形式,如视频文件,音频文件都是二进制类型的文件。
因为,python3中的数据在设备之间传输时 必须以二进制形式传输,所以必须有二进制和字符串的转换
bytes类型转换为字符串类型:b‘dddd‘.decode(‘编码方式’)括号内默认的编码方式是utf-8
字符串类型转化为bytes类型:‘dddd’.encode(‘编码方式‘)括号内默认的编码方式是utf-8
列表:
name=[‘1‘,‘2‘,‘3‘]
取(顾首不顾尾 ): 从左往右:name[0] name[0:2] name[0:2:4] ; 从右往左: name[-2] name[-2:-1] ;取到最后一个 name[1:], name[-3:] 内取到片name[-3] name[-2] name[-1]
添:追加:name.append(‘4‘)
在随意位置添加:name.insert(序号,‘ ’)
改: name[2]=‘ ‘
删: name.remove(‘ ‘) del name[2] name.pop(2)
查: name.index(‘ ‘)
统计:name,count(‘ ‘)
清空列表:name.clear()
反转: name.reverse()
排序: name.sort()
合并: name.extend(name2)
删整个变量: del 变量名
浅复制: import copy
name2=copy.copy(name)
name2=name[:]
name2=list(name)
#只复制第一层列表的元素,其他 层的列表元素法复制的是地址,故改其中的 一个,都会改
深复制: import copy
name2=deepcopy.copy(name) #复制的是所有的元素
元组: name=(‘ ‘,‘ ‘,‘ ‘) 只有两个运算,name.count(‘ ‘) name,index(‘ ‘)
判断输入的字符串是否属于数字 salary.isdigit()
enumerat(name): 能输出列表的下表
如: for i,j in enumerate(name)
print(i,j)
len(a): 求列表的长度
打印字体变色: \033[31:1m------------\033[0m
字符串:
name.capitalize() #第一个字母大写
name.endswith(‘a‘) #判断字符串是否以a结束 name.startswith(‘b‘) #判断字符串是否以b开始
name.count(‘abc‘) #统计字符串中包含abc的个数
name.center(50,‘-------‘) #输出-------------------name-------------------长度为50
字符串切片: name[name.find(‘abc‘):name.find(‘dd‘)] #name.find(‘a‘) 能返回name中a在name中的位置
‘:’.join([‘1‘,‘2‘,‘3‘]) #输出 1:2:3
name.ljust(50,‘*‘) #name***************************** name.rjust(50,‘*‘) # *******************************name
name.lower() #大写变小写 name.upper() #小写变大写
name.strip() #从两边去掉空格和回车 name.lstrip() #从左边去掉空格和回车 name.rstrip() #从右边去掉空格和回车
name.replace(‘l‘,‘L‘) #把l替换成L name.replace(‘l‘,‘L‘,1) #只替换一个
name.rfind(‘L‘) #找到name中最右边L的下标
name.split(‘:‘) #切片
name.swapcase() #大写变小写,小写变大写
字典: 支持多级嵌套
info={key1:‘元素‘,
key2:‘元素‘}
查: info[key] info.get(key)
改: info[key]=‘元素‘
添: info[‘new key‘]=‘元素‘
删: del info[key] info.pop(key)
判断是否存在 : key in info
name.setdefault(key,元素) 如 name.setdefault(‘xingming‘,‘houzaili‘) #先判断name是否存在‘xingming’的键,若存在该变它的运算,若不存在,添加
合并: info.updat(a) #将info和a合并,若info和a存在 相同的键,则用a来代替info
字典的循环:
for i in info:
print(info[i])