1,python中的模块分为标准,第三方,标准的为自带的,不需要安装直接import使用
2,python文件名不要和模块名相同
3,sys模块
#-*- coding:utf-8 -*-
importsysprint(sys.path) #打印环境变量
print(sys.argv) #打印脚本信息和相关传递参数
print(sys.argv[2]) #打印传递来的第三个参数的值
4,os模块
importos#与系统交互使用较多
os.system("dir") #输出到屏幕上,然后值就销毁
cmd_msg = os.system("dir")#print(cmd_msg) #此处cmd_msg的值是用来检测此命令执行是否成功 成功为0,非0为不成功
#若想将结果保存的话可以使用popen
cmd_mess = os.popen("dir").read()print(cmd_mess)#创建目录
os.mkdir("../day3")
5,python标准库在python_path下base文件夹下的Lib中,第三方库在site-packages
6,在命令行执行python文件时,先激活了python的解释器,告诉解释器要开始工作,在解释之前执行的第一件工作与java一样,进行编译。所以python也是一个先编译后解释的语言
7,python的PyCodeObject和pyc文件,PyCodeObject是Python编译器真正编译形成的结果,在python运行程序的时候编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,python解释器将PyCodeObject写回到pyc文件中,当python第二次运行程序的时候首先程序会在硬盘中寻找pyc文件,如果找到则直接载入,否则就重复上面的过程,所以说pyc文件应该是PyCodeObject的一种持久化保存方式
8,python 字符串常用功能 移除空白 分割 长度 索引 切片
9,encode() decode() 字符串转换为二进制,二进制解为字符串
#-*-coding:utf-8 -*-
msg = "哈哈"
print(msg.encode(encoding="utf-8"))
by= msg.encode(encoding="utf-8")print(by.decode(encoding="utf-8"))
10,列表的增删改查,切片等常用操作及函数
#-*- coding: utf-8 -*-
importcopy
names= ['a','b','c','a']print(names) #打印列表
print(names[0],names[1]) #打印其中的值
print(names[1:3]) #选取区间进行打印从1取到3 值为['b','c'],值也为列表 此即为切片
print(names[-1]) #取最后一个值
print(names[-3:]) #从倒数第三个开始取
print(names[:3]) #从0开始取,此时0可以省略
names.append("e") #往末尾推一个值
print(names)
names.insert(1,"o") #指定位置插入单元
print(names)
names[1] = "a" #修改值
print(names)
names.remove("a") #删除值,只能删除找到的第一个a
print(names)del names[0] #也是删除值,只能删除找到的第一个a
print(names)
names.pop()#默认不输入下标的话删除最后一个值
print(names)
names.pop(0)#指定位置进行删除
print(names)
index= names.index("a") #根据值查找索引
print(index)
names.append("a")print(names)
num= names.count("a") #统计某个值有几个
print(num)
names.sort()#按照ascii值进行排序
print(names)
names.reverse()#反转列表
print(names)
names2= [1,2,3,4]
names.extend(names2)#合并names2,同时保留names2
del names2 #删除变量
print(names)
names.extend(names)#合并自身
print(names)print(names[::2]) #步长切片隔一个取一次
names3=names.copy()
names[0]= 1
print(names,names3)
names= ['a','b',['c','d'],'e']
names3= names.copy() #copy为浅copy 只copy第一层
'''浅copy的实现方式
names3 = names.copy()
names3 = copy.copy(names)
names3 = names[:]
names3 = list(names)'''names[2][0] = 1
print(names,names3)
names= ['w','e',['q','a'],'s']
names4=copy.deepcopy(names)
names[2][0] = 1
print(names,names4)
names.clear()#清空列表
print(names)
11,列表的浅copy与深copy 深copy谨慎使用 浅copy 只可以赋值列表的第一层,用在两个同样的copy,改变其中一个信息时另一个一起改变
#-*-coding:utf-8-*-
importcopy
msg= ["name",['money',100]]
p1=msg.copy()
p2=msg.copy()#修改p1的值
p1[0] = "a"
print(p1,msg) #['a', ['money', 100]] ['name', ['money', 100]]
p2[0] = "b"
print(p1,p2,msg) #['a', ['money', 100]] ['b', ['money', 100]] ['name', ['money', 100]]
#有需求需要更改一个人钱的时候,另一个人的钱也需要同时发生变化,测试浅copy非常有用
p1[1][1] = 50
print(p1,p2,msg) #['a', ['money', 50]] ['b', ['money', 50]] ['name', ['money', 50]]
12,深copy import copy模块 deecopy()
13,元组合列表其实差不多,但是元组是只读列表,不可以增删改查,有两个方法index() count()
#-*-coding:utf-8 -*-
names= ('a','b','c')print(names)#只有两个方法count() index()
num = names.count('a')print(num)
index= names.index('c')print(index)
14,元组一般存储不变的信息,例如数据库连接信息等
15,isdigit() 检测值是否为字符串型的数字
16,enumerate() 将列表的索引和值一起输出
17,len() 计算列表长度
18,"\033[31;1m%s\033[" % 打印出来值具有颜色
19,exit()退出程序