Python学习笔记 Day 2
初识库(模块)
import sys
print (sys.path)#打印系统库(即环境变量)路径
print(sys.argv)#找印当前文件路径,即绝对路径
import os
cmd_res=os.system("dir")#dir,查看当前路径文件,执行命令,不保存结果
cmd_res1=os.popen("dir")#保存结果
print(cmd_res)
print(cmd_res1)
os.mkdir("new folder1")#系统库路径下创建文件
pyc文件与PyCodeObject文件
pyc文件与PyCodeObject文件是Python编译器真正编译成的结果。pyc文件相当于是高级语言与机器语言的解释,PyCodeObject文件在硬盘中找不到,但其共同完成解释。Python不像C,不可以直接编译。Python需要中间解释。
数据类型
略
列表(数组)
一维
如下的使用亦可应用于二维
- 在使用索引时,里面的索引数值为负时,表明是从后往前数第N个;-1是最后一个
name=["liang","li","qi","xin"]
print (name[-2:])#0,-1可以不写
- 数组加元素
从最后面加元素,使用的方法是引用.append()函数
如下:
name=["liang","li","qi","xin"]
name.append("liu")
print (name[0:5])
如果从中间加元素,则使用的是.insert()函数
如下:
names=["liang","li","qi","xin"]
names.insert(2,"liu")#insert(i,"元素"),I为元素所插入位置
print (names[0:5])
- 数组换元素:
names=["liang","li","qi","xin"]
names[2]="chen"
print (names[0:5])
- 删元素
names=["liang","li","qi","xin"]
del names[1]#等同names.pop(1),删数组,del names,使数组消失
print (names[0:5])
names=["liang","li","qi","xin"]
names.pop()
#函数不加元素位置参数,默认删最后一个,加上参数,则删参数位置元素
print (names[0:5])
- 找元素位置
names=["liang","li","qi","xin"]
print (names.index("qi"))#.index(),索引函数
- 元素计算个数
names=["liang","li","qi","xin","li","li","li"]
print (names.count("li"))#.count为计总函数
- 清空元素
names=["liang","li","qi","xin","li","li","li"]
names.clear()
print(names)
- 反转函数元素
names=["liang","li","qi","xin","li","li","li"]
names.reverse()
print(names)
- 使元素按ascii码排序
names=["Liang","3li","qi","#xin"]
names.sort()
print(names)
- 合并另一个数组
names=["Liang","3li","qi","#xin"]
names_another=["liang","li","xin","li","li","li"]
names.extend(names_another)
print(names,"\n",names_another)
- 数组复制
把多维复制到一维,只有第一维复制到,Copy的是地址。因为Copy的是地址,从结果上看与深复制一样。而如果不使用深复制,只是浅复制,那对于里面的只是引用,当其他对象也在浅复制了同一个多维数组时,一处地方改动被复制多维的数据,这个改动会同步到其他地方。多维复制要使用Copy模块中的深复制,copy.deepcopy()函数,这样才是独立复制,把数据完复制过去。
names=["Liang","3li","qi","#xin"]
names_another=["liang","li","xin","li","li","li"]
names=names_another.copy()
#浅复制,等同于names=names_another,names=copy.copy(names_another)
#使用copy.copy(),要import copy
print(names,"\n",names_another)
- 列表循环
names_another=["liang","li","xin","li","li","li"]
for i in names :
print(i)
二维
- 深Copy
import copy
names=["liang","li","xin","li","li","li"];
names_another=["ik",
["dksla","dsa","0","%3##"],
["*%^","iio","3rn","^yi:"],
["dk","iioo","jdks","II"],
"dka"
]
names=copy.deepcopy(names_another)
names2=names_another.copy()
print(names,"\n",names_another,"\n",names2)
- 深浅copy的对比
多个股东共同管理财产,使用公用银行账号
import copy
names_and_countor=["姓名",["银行","余额"]]
gd1=names_and_countor.copy()
gd2=names_and_countor[:]
gd3=copy.copy(names_and_countor)
gd4=names_and_countor.copy()
gd5=names_and_countor[:]
gd6=copy.copy(names_and_countor)
duibi=copy.deepcopy(names_and_countor)
gd1[0]="zhangshan"#改名
gd2[0]="lisi"
gd3[0]="dkls"
gd4[0]="dsad"
gd5[0]="dvdfdd"
gd6[0]="dsafds"
duibi[0]="dddd"
gd1[1][0]="中国工商银行62622699999999999999"#银行账号
gd1[1][1]="8000"#余额
gd6[1][1]="7500"#股东6拿了500出来用于公司运转
print(gd1,"\n",
gd2,"\n",
gd3,"\n",
gd4,"\n",
gd5,"\n",
gd6,"\n",
duibi)
结果如下
['zhangshan', ['中国工商银行62622699999999999999', '7500']]
['lisi', ['中国工商银行62622699999999999999', '7500']]
['dkls', ['中国工商银行62622699999999999999', '7500']]
['dsad', ['中国工商银行62622699999999999999', '7500']]
['dvdfdd', ['中国工商银行62622699999999999999', '7500']]
['dsafds', ['中国工商银行62622699999999999999', '7500']]
['dddd', ['银行', '余额']]
可以看出浅复制只是在引用原数组,深复制才是完全独立复制。
元组(只读数组)
特殊的数组,不可以改里面的元素,一但创建就固定 。
namws=("g","2","4","dg")
它的使用只有count与index
程序练习
作业完成如下,4未实现
print("请输入工资")
YuE=int(input("工资:"))
YG=[]#已购商品
def