李雄飞
Published on 2017-09-02 11:31 in 暂未分类

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")
Code

运行结果

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)
Code

运行结果

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("输入错误!")
Code

运行结果

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
Code

运行结果

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 

 

  *以上仅供自己复习之用*

posted @ 2018-04-17 11:14  李雄飞  阅读(134)  评论(0编辑  收藏  举报