购物程序练习

import time

#商品列表,采用列表嵌套元祖方式
goods_list=[
    ('水杯',25),
('牙刷',15),
('手机',3500),
('耳机',100),
]

#建立购物清单列表,备存购物清单
shop_list=[]
#输入工资总额
money=input('请输入购物金额:')
#判断输入的工资是不是由数字组成,如果是,转换为整数型,如果不是,打印出错了!

if money.isdigit():
    money=int(money)

#循环
    while True:
         #index及enumerate的使用,打印商品列表及序号
        for index,i in enumerate(goods_list):
            # 用户输入商品序号
            print(index,i)
            # 判断用户输入的是不是数字类型,如果是,转换为整数型
        usr_select = input('请输入您要购买商品序号:')
        if usr_select.isdigit():
            usr_select = int(usr_select)
            # 检测用户输入的数字是否小于商品列表及大于等于0
            if usr_select<len(goods_list)or usr_select>=0:
                #定义用户选择的商品
                select_goods=goods_list[usr_select]
                #检测如果用户选择的商品,价格小于等于工资,判断为买的起
                if select_goods[1]<=money:
                    # 向用户选择商品清单增加当前选择商品
                    shop_list.append(select_goods)
                    # 扣减当前购买商品的金额
                    money-=select_goods[1]
                    #打印购买当前商品成功,并显示当前余额
                    print('购买%s成功,您的余额为%d.'%(select_goods[0],money))
                #如果当选择商品金额大于余额,则打印当前余额
                elif select_goods[1]>money:
                    print('您的余额只有%d,快去赚钱!'%money)
            #如果输入的序号不存在,提示当前输入的序号错误,
            else:
                print('您输入的序号%s,不存在!请重新输入'%usr_select)
            #如果用户输入Q 打印购物清单及余额,退出
        elif usr_select=='q':
            print('-----------购物清单-----------')
            for P in shop_list:
                print(P)
            print('您的余额是%s'%money)
            print
            t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            print(t)
            exit()
            #输入不是数字类型的,直接报错
elif money.isalpha():
      print('您输入的不是数字!')

 

知识点:

1.判断变量类型:money.isdigit():    是不是数字型  or  money.isalpha  是不是字母型

2.enumerate,在for中应用  

enumerate(sequence, [start=0])
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, seq[i]
... 
0 one
1 two
2 three

3.len 返回字符串,列表,元组,字典长度值 从0计。

4.append 向列表 字典中增加值,位置在最后

5.打印清单,使用for    

for i in shop_list
    print(i)

可以将清单中内容打印出来

6.导入time模块  获取当前时间为:tim.strftime("%Y-%m-%d %H:%M:%S",time.localtime)

百分号后注意大小写

7.退出可以用exit()

 

总结:第一次写代码,按示例  先标明注释,再删掉代码,全部自己写,还是出现很多问题:

 

posted @ 2017-12-23 21:34  Bo_Liu  阅读(362)  评论(0编辑  收藏  举报