python学习---8.6.1 三明治机

《python编程快速上手——让繁琐工作自动化》

题目:

编写一个程序,询问用户对三明治的偏好。程序应该使用 PyInputPlus 来确保他们输入有效的输入,例如:

使用inputMenu()表示面包类型:小麦、白面包或酸面团。
使用inputMenu()表示蛋白质类型:鸡肉、火鸡、火腿或豆腐。
用inputYesNo()询问他们是否想要奶酪。
如果是这样,用inputMenu()询问奶酪的种类:切达奶酪、瑞士奶酪或马苏里拉奶酪。
用inputYesNo()询问他们想要蛋黄酱、芥末、生菜还是西红柿。
用inputInt()询问他们想要多少三明治。请确保该数字等于或大于 1。
为这些选项中的每一个提供价格,并在用户输入他们的选择后,让您的程序显示总成本。

import pyinputplus as pyip
import sys


#有对应关系的用字典
#1.创建价格表
sandwich={'面包':{'小麦':3,'白面包':5,'酸面团':2},\
        '蛋白质':{'鸡肉':5,'火鸡':7,'火腿':6,'豆腐':2},\
        '奶酪':{'切达奶酪':3,'瑞士奶酪':2,'马苏里拉奶酪':4},\
        '加料':{'蛋黄酱':2,'芥末':0,'生菜':1,'西红柿':2}}


#2.菜单选项,列表有sum功能
price=[]
a=pyip.inputMenu(prompt='请选择面包类型:\n',choices=list(sandwich['面包']),blank=True)
if a=='':
    print('已退出点餐')
    sys.exit()
b=pyip.inputMenu(prompt='请选择蛋白类型:\n',choices=list(sandwich['蛋白质']),blank=True,default=0) #考虑不加蛋白情况,增加blank
cheeseYN=pyip.inputYesNo('是否需要奶酪?')
if cheeseYN=='yes':
    c=pyip.inputMenu(prompt='请选择奶酪类型:\n',choices=list(sandwich['奶酪']))
else:
    c=int(0)


#加料价格
def jialiao(liao):
    prompt=f'是否需要{liao}?\n'
    a=pyip.inputYesNo(prompt,blank=True,default=0)
    if a=='yes':
        price.append(sandwich['加料'][liao])
    else:
        price.append(0)
for i in sandwich['加料']:
    jialiao(i)


#单个汉堡价格
price.append(sandwich['面包'][a])
price.append(sandwich['蛋白质'].get(b,0))
price.append(sandwich['奶酪'].get(c,0))
price=sum(price)


#需要多少个三文治
numS=pyip.inputInt('询问他们想要多少三明治?',min=1)
sumPrice=price*numS
print('总消费金额 :'+str(sumPrice)+'元')

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值