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()
总结:第一次写代码,按示例 先标明注释,再删掉代码,全部自己写,还是出现很多问题: