感觉这两天看视频所花的时间没有前两张那么多了,不知道是心态产生惰性还是事情太多了,反正都是客观原因,现在只有通过写博客提醒自己要要放弃,坚持一下。

最近两三天都在考虑第二章节作业的问题,三级菜单和购物车。真的想老师说的一样,在看视频的时候老师说什么都懂,但真正准备开始写一个程序的时候却无从下手,老师的总结是代码写得太少了,没有套路当然无从下手,前天上了李必胜老师的课,学习了编程是什么?编程是算法加上数据的集合,我按照这个套路把需求拆分为算法和数据,果然有一定效果,但后面还是发现有两个自身问题:1逻辑还是写不出来,2对字典的用法不熟练。比如说在写三级菜单时,第三层循环也是一直报错,怎么取到第三层的值?困扰了我好长时间。

     另一个程序购物车,只写到打印商品列表,打印商品序号以后的程序都是参考百度搜索的流程图做出来的,今天这个程序让我学到一点,写一个程序之前试着先画一个流程图,效果是否跟好,写代码的思路是否更清晰,今晚试一试。

    总之,也算有收获,上面说到的两个程序再去反复学习,待熟练之后在进入下一模块。

 

三级菜单:

menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{
'浦东机场':{
'免税店':{}
}
},
},
'山东':{
'青岛':{
'青岛啤酒厂':{}
},
'烟台':{
'烟台海鲜店':{}
},
'济南':{
'趵突泉':{}
},
},
}

while True:
# 循环第一层
for i in menu:
print(i)

city_1 = input('>:')

if city_1 in menu:
while True:
# 循环第二层
for i in menu[city_1]:
print(i)

city_2 = input('>>:')

if city_2 in menu[city_1]:
while True:
# 循环第三层
for i in menu[city_1][city_2]:
print(i)

city_3 = input('>>>:')

if city_3 in menu[city_1][city_2]:
print('最后一层')
# 第三层返回
elif city_3 == 'b':
break
# 第三层退出
elif city_3 == 'q':
exit("已退出")
else:
print('节点不存在')
# 第二层返回
elif city_2 == 'b':
break
# 第二层退出
elif city_2 == 'q':
exit("已退出")
else:
print('节点不存在')
# 第一层退出
elif city_1 == 'q':
exit("已退出")
else:
print('节点不存在')

--------------------------------------------- 分割线 --------------------------------------------------------------------
购物车:
goods_list = [
{"name": "电脑", "price": 4999},
{"name": "鼠标", "price": 100},
{"name": "游艇", "price": 20000},
{"name": "美女", "price": 998}
]

shopping_list = []

username = input('用户名:')
password = input('密码:')
salary = input('工资余额:')

# 确认输入到金额是整数
if salary.isdigit():
salary = int(salary)
salary1 = int(salary)

while True:
# for i in goods_list:
# print(goods_list.index(i),i)
# 循环输出商品列表
for index, i in enumerate(goods_list):
print(index, i)

# 选择商品
select_goods = input("请输入商品编号:")

# 输入到商品编号转整型
if select_goods.isdigit():
select_goods = int(select_goods)

# 输入到商品编号必须在商品列表范围内
if select_goods < len(goods_list) and select_goods >= 0:
# 根据编号,取得该商品信息
P_id = goods_list[select_goods]
# 比较商品价格和工资余额大小,如果商品价格小于工资余额
if int(P_id['price']) <= salary:
shopping_list.append(P_id)
salary -= P_id['price']
print("添加 %s 到购物车,余额: \033[32;1m%s\033[0m" % (P_id, salary))
# 否则,显示余额不足
else:
print('\033[31;1m余额不足\033[0m')
# 若商品编号不在商品列表范围内则显示商品不存在
else:
print('\033[31;1m商品不存在,请重新选择!\033[0m')
# 若输入的不是商品编号而是'q'则显示购物车选中商品和余额并退出程序
elif select_goods == 'q':
print('\033[31;1m----------- 购物车 -----------\033[0m')
for p in shopping_list:
print('\033[31;1m%s\033[0m'% p)
print('\033[31;1m-----------------------------\033[0m')
k = int(salary1) - salary
print('\033[31;1m共计消费:%s\033[0m' % k)
print('\033[31;1m-----------------------------\033[0m')
print('\033[31;1m余额余额:%s\033[0m'% salary)
print('\033[31;1m-----------------------------\033[0m')
exit()
else:
print('\033[31;1m商品不存在,请重新选择!\033[0m')