随着无人新零售经济的崛起,商场、车站、大厦等各种场所都引入了无人饮品自动售货机,方便人们选购自己想要的饮品。购买者选择想要的饮品,通过投币或扫码的方式支付,支付成功后从出货口取出饮品。
本实例要求编写代码,利用函数实现具有显示饮品信息、计算总额等功能的程序。
发的处女文章,欢迎大家前来探讨交流,小生说的不对的地方,以及代码可以改进的地方请大佬们高抬贵手,帮我修改一下,这对我的学习非常的有帮助,谢谢大家!
话不多说,上代码!
我们在本题中用到了字典方面的知识,采用了一个键值对应的方式来实现创建商品列表,当然也可以直接用class类直接实现(想了很久还是决定用字典。。。)键值对的嘛,首选字典。
定义商品字典,相当于商品表单
item_dict = {'冰红茶':3,'脉动':3.5,'果缤纷':3,'绿茶':3,
'茉莉花茶':3,'百事可乐':2.5,'尖叫':2.5,'可口可乐':2.5}
循环遍历字典,打印输出表单
def dict_show():
print('{}'.format('-'*20))
print('饮品自动售货机2.0\n')
for i in item_dict:
直接采用键值对的方式打印商品名称和值
print("{}:{}元".format(i,item_dict[i]))
print('*q回车后结束')
print('{}'.format('-'*20))
定义item类
class item:
初始化totle成员,代表您要购买商品的总数嘞
def __init__(self,totle):
self.totle = totle
这里是输入商品数量累加球和的函数
def item_num(self):
尝试让用户输入
print('请输入购买数量')
如果用户输入的不是整形将返回error,直接返回输入名字函数(题目要求的==)
try:
k = int(input())
except ValueError:
print('错误!错误类型:只能输入整数!')
**题目可以直接返回输入商品数量函数的,够严格哈,解注释就完成了
self.item_num()
else:
self.totle = self.totle + item_dict[self.name]*k
#返回所有商品的总记额
return self.totle
这里传入的数据是配对后的商品名字
在这里开始补充32行代码,因为商品的字典是键值对关系,
所以采用了商品名称来计算相关总计额
def item_totle(self,name):
self.name = name
self.item_num()
调用主函数
def main():
sum = 0
item1 = item(sum)
while True:
类外再判断输入是否正确
print('请输入商品名称:')
k = input()
if k in item_dict:
item1.item_totle(k)
if k not in item_dict and k != 'q':
print('错误!错误类型:查无此商品')
if k == 'q':
break
print('需要支付的金额:{}元'.format(item1.totle))
dict_show()
main()
结束啦!是不是很简单?
哎没什么好讲的,全部就都是基础的,今天也不想努力,明天再努力吧。。。