python模块、列表及相关知识

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是之前的编码
两者之间的转换图:
python3中bytes与str之间的转换图
实例代码:

str = "我爱北京天安门"
print(str.encode(encoding='utf-8'))
print(str.encode(encoding='utf-8').decode(encoding='utf-8'))

执行结果:
str与bytes转换实例执行结果

三、列表

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
实例代码:(图片格式,代码没保存)
浅copy实例代码浅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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值