python模块、列表等重要知识点
一、模块
1、sys模块
sys.path
sys.argv
2、os模块
os.system(“dir”)执行命令不保存结果
os.popen(“dir”).read()
os.mkdir()当前目录下创建目录
3、自己导入模块
–当前目录下
–放在/lib/site-packages
二、数据类型及其运算
1、python3中不存在int、long之分,都是int
2、python中的字符串在C语言中体现为一个字符数组,每次创建字符串时候需要在内存中开辟新的连续的空间,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一段新的空间
3、三元运算
result = 值1 if 条件 else 值2
4、python3的bytes/str不可隐式混用,即不可拼接字符串和字节包。
二进制转成字符串:decode(encoding=‘utf-8’)
字符串转成二进制:encode(encoding=‘utf-8’) 不写具体编码默认就是:utf-8是之前的编码
两者之间的转换图:
实例代码:
str = "我爱北京天安门"
print(str.encode(encoding='utf-8'))
print(str.encode(encoding='utf-8').decode(encoding='utf-8'))
执行结果:
三、列表
1、切片:
①顾头不顾尾
②从右向左-1开始,再左边一个是-2
③取最后面的值可以省略[-2:]
2、添加:
①append
②insert(位置,内容)
3、修改:通过下标修改
4、删除:三种方法
– remove(“neirong”)
–del names[1] 删除指定位置元素
–pop()不输入下标,默认删除最后一个
5、查找指定内容位置:
index(“neirong”)
6、统计列表中指定内容的数量:
count(“neirong”)
7、清空
clear()
8、反转
reverse()
9、排序:
sort() 按照ascll码顺序排
10、合并两个列表
names.extend(names2)
11、复制列表
①copy()
注意浅copy问题,多层列表只能copy第一层,原因是只是copy了内存地址
②import copy 引入copy模块,独立copy
copy.copy()与①一样
copy.deepcopy() #深copy
实例代码:(图片格式,代码没保存)
12、循环
①for i in names:
print(i)
②names[0,-1,2]步长是2, 0和1可以省略,即names[,2]
四、元组
两个方法:count()和index()
意义:存放不可变的数据,用于提醒程序员不可更改其中内容
五、购物车程序作业
自己写了个,基本功能都有了,下一篇更新下
'''
1、启动程序后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买物品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时打印已购买商品和余额
'''
salary = int(input("please input your salary:"))
print(salary)
goods_list = [["洗衣液", 20], ["毛巾", 10], ["牙刷", 10], ["笔记本", 5], ["剃须刀", 50]]
print(goods_list)
goods_list2 = []#存放已购买物品清单
while True:
#判断金额是否大于0
if salary <= 0 :
print("您的余额不足")
break;
else:
print('''
1、洗衣液 20
2、毛巾 10
3、牙刷 10
4、笔记本 5
5、剃须刀 50
''')
#金额满足要求后输入商品编号
id = input("please input goods number:(按b退出)")
if id == "b":
break;
id_int = int(id)-1 #转换id为int类型
# 判断商品编号是否合法
if id_int >= 0:
#判断工资是否购买已选商品
if salary >= goods_list[id_int][1]:
salary = salary - goods_list[id_int][1]
goods_list2.append(goods_list[id_int][0])
else:
print("您的余额不足,余额%d元" %salary)
break;
else:
#非法输入商品编号
print("您的输入有误!请重新输入")
continue;
print("您已购买:",goods_list2)
print("您的余额为:",salary)