码迷,mamicode.com
首页 > 其他好文 > 详细

购物程序练习

时间:2017-12-23 23:09:24      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:报错   问题:   长度   put   问题   input   成功   ftime   select   

技术分享图片

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

 

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

 

购物程序练习

标签:报错   问题:   长度   put   问题   input   成功   ftime   select   

原文地址:http://www.cnblogs.com/skbarcode/p/8094505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!