python_day2
简介:列表操作,元组,购物车程序
1、列表操作
# Author:Er #列表操作 name = ["name", "age", "hah"] del name[2] print("删除del: ", name) name.remove(name[0]) print("删除remove: ", name) name.append("li") print("追加append: ", name) name.insert(2, "xiong") print("插入insert: ", name) name[0] = "info" print("修改: ", name) _name = ["my", "name", "is", "er"] name.extend(_name) print("扩展extend:", name) _name_copy = name.copy() print(_name_copy) count = name.count("is") print("is 的个数为:", count) name.sort() print("排序sort: ", name) name.reverse() print("反转reverse: ", name) #获取下标 print("er 的下标为: ", name.index("er")) # 元组 和列表差不多,只是一创建,就不能再修改,只有count,index names = ("my", "name", "is")
运行结果
E:\PY\venv\Scripts\python.exe E:/PY/day2/list_all.py 删除del: ['name', 'age'] 删除remove: ['age'] 追加append: ['age', 'li'] 插入insert: ['age', 'li', 'xiong'] 修改: ['info', 'li', 'xiong'] 扩展extend: ['info', 'li', 'xiong', 'my', 'name', 'is', 'er'] ['info', 'li', 'xiong', 'my', 'name', 'is', 'er'] is 的个数为: 1 排序sort: ['er', 'info', 'is', 'li', 'my', 'name', 'xiong'] 反转reverse: ['xiong', 'name', 'my', 'li', 'is', 'info', 'er'] er 的下标为: 6 Process finished with exit code 0
2、复制copy
# Author:Er import copy name = ["my", "name", "is", "er", ["li", "xiong", "fei"]] _name = copy.copy(name) _name = name[:] _name = list(name) # 以上全部为浅复制,只有一层(可以单独改变),第二层里面(一变就全部同时变)(例子的话银行存款) _name1 = copy.deepcopy(name) # 深复制 del name[4][0] print(_name, _name1) for i, j in enumerate(name): # 前是编号,后是内容 print(i, j) for i in name: print(name.index(i), i)
运行结果
E:\PY\venv\Scripts\python.exe E:/PY/day2/new_dir/test.py ['my', 'name', 'is', 'er', ['xiong', 'fei']] ['my', 'name', 'is', 'er', ['li', 'xiong', 'fei']] 0 my 1 name 2 is 3 er 4 ['xiong', 'fei'] 0 my 1 name 2 is 3 er 4 ['xiong', 'fei'] Process finished with exit code 0
# 关于浅复制的应用 假设A 与B 拥有共同财产 count =[ "name",[余额]] A = ["A",余额] B = ["B",余额] 这样A B 可以随时修改姓名,但账户余额因为是由count浅复制而来,消费时count-,但AB 不能更改
3、购物车
# Author:Er # 购物车程序 product_list = [ ("手机", 1699), ("电脑", 5000), ("手环", 200) ] shopping_cart = [] salary = input("请输入余额: ") if salary.isdigit(): # 判断输入是否为数字 salary = int(salary) while True: print("**********商品列表**********") for _index, item in enumerate(product_list): print(_index, item) # index 编号 item 列表内容 print("***************************") choice_list = input("请输入购买商品编号:") if choice_list.isdigit(): choice_list = int(choice_list) if choice_list < len(product_list): if salary >= product_list[choice_list][1]: salary -= product_list[choice_list][1] shopping_cart.append(product_list[choice_list]) print("你的当前余额为:", salary) else: print("您的当前余额为:%d,余额不足!" % salary) # 打印格式 else: print("暂无此商品!") # 判断是否退出 elif choice_list == "q": # 打印当前购物车信息 print("你的当前余额为:", salary) print("--------购物车---------") for item in shopping_cart: print(item) print("----------------------") exit() # 退出 else: print("输入错误!请重新输入:") else: print("输入错误!")
运行结果
E:\PY\venv\Scripts\python.exe E:/PY/day2/new_dir/shopping.py 请输入余额: 10000 **********商品列表********** 0 ('手机', 1699) 1 ('电脑', 5000) 2 ('手环', 200) *************************** 请输入购买商品编号:0 你的当前余额为: 8301 **********商品列表********** 0 ('手机', 1699) 1 ('电脑', 5000) 2 ('手环', 200) *************************** 请输入购买商品编号:1 你的当前余额为: 3301 **********商品列表********** 0 ('手机', 1699) 1 ('电脑', 5000) 2 ('手环', 200) *************************** 请输入购买商品编号:5 暂无此商品! **********商品列表********** 0 ('手机', 1699) 1 ('电脑', 5000) 2 ('手环', 200) *************************** 请输入购买商品编号:3 暂无此商品! **********商品列表********** 0 ('手机', 1699) 1 ('电脑', 5000) 2 ('手环', 200) *************************** 请输入购买商品编号:q 你的当前余额为: 3301 --------购物车--------- ('手机', 1699) ('电脑', 5000) ---------------------- Process finished with exit code 0
4、三级菜单(参考)
__author__ = "Alex Li" data = { '北京':{ "昌平":{ "沙河":["oldboy","test"], "天通苑":["链家地产","我爱我家"] }, "朝阳":{ "望京":["奔驰","陌陌"], "国贸":{"CICC","HP"}, "东直门":{"Advent","飞信"}, }, "海淀":{}, }, '山东':{ "德州":{}, "青岛":{}, "济南":{} }, '广东':{ "东莞":{}, "常熟":{}, "佛山":{}, }, } exit_flag = False while not exit_flag: for i in data: print(i) choice = input("选择进入1>>:") if choice in data: while not exit_flag: for i2 in data[choice]: print("\t",i2) choice2 = input("选择进入2>>:") if choice2 in data[choice]: while not exit_flag: for i3 in data[choice][choice2]: print("\t\t", i3) choice3 = input("选择进入3>>:") if choice3 in data[choice][choice2]: for i4 in data[choice][choice2][choice3]: print("\t\t",i4) choice4 = input("最后一层,按b返回>>:") if choice4 == "b": pass elif choice4 == "q": exit_flag = True if choice3 == "b": break elif choice3 == "q": exit_flag = True if choice2 == "b": break elif choice2 == "q": exit_flag = True
运行结果
E:\PY\venv\Scripts\python.exe "E:/书籍下载/python/L002-Python基础2 列表、字典、集合/s14day2_code/3level_menus.py" 北京 山东 广东 选择进入1>>:北京 昌平 朝阳 海淀 选择进入2>>:昌平 沙河 天通苑 选择进入3>>:沙河 oldboy test 最后一层,按b返回>>:b 沙河 天通苑 选择进入3>>:b 昌平 朝阳 海淀 选择进入2>>:朝阳 望京 国贸 东直门 选择进入3>>:b 昌平 朝阳 海淀 选择进入2>>:q Process finished with exit code 0
集合操作及字符串操作:(来源)
http://www.cnblogs.com/alex3714/articles/5717620.html
*以上仅供自己复习之用*
http://www.cnblogs.com/BlogOfEr/