要求:设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)
展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
输入付款金额->打印购买小票(扩展)
代码如下(简单版本):
print(" 英雄商城购买英雄 ")
print("英雄购买票据")
print("~*"*20)
print("编号 姓名 昵称 价格 库存 描述")
print("1 李青 盲僧 6300 99+ 我用双手成就你的梦想")
print("2 阿狸 九尾妖狐 6300 99+ 我们去找点儿真正的乐子吧")
name = str(input("请输入你要购买的英雄(编号or姓名or=昵称):"))
if name == "1" or name == "李青" or name == "盲僧":
print("\n")
print("\t\t英雄信息\n\n")
print("编号 姓名 昵称 价格 库存 描述")
print("1 李青 盲僧 6300 99+ 我用双手成就你的梦想")
price = int(input("请输入你购买英雄的价格:"))
num = int(input("请输入你购买英雄的数量:"))
pay = int(input("请付款,输入你的付款金额:"))
print("\t购买票据\n")
print("购买成功:李青\n")
print("购买金额:%s\n" %pay)
print("购买成功,退出英雄商城")
else:
print("\n")
print("\t\t英雄信息\n\n")
print("编号 姓名 昵称 价格 库存 描述")
print("2 阿狸 九尾妖狐 6300 99+ 我们去找点儿真正的乐子吧")
price = int(input("请输入你购买英雄的价格:"))
num = int(input("请输入你购买英雄的数量:"))
pay = int(input("请付款,输入你的付款金额:"))
print("\t购买票据\n")
print("购买成功:阿狸\n")
print("购买金额:%s\n" %pay)
print("购买成功,退出英雄商城")
代码如下(改进后):
def display_hero_info():
print(" 英雄商城购买英雄 ")
print("编号 姓名 昵称 价格 库存 描述")
print("1 李青 盲僧 6300 99+ 我用双手成就你的梦想")
print("2 阿狸 九尾妖狐 6300 99+ 我们去找点儿真正的乐子吧")
def get_hero_details(hero):
print("\n\t\t英雄信息\n\n")
print("编号 姓名 昵称 价格 库存 描述")
print(f"{hero['number']} {hero['name']} {hero['nickname']} {hero['price']} {hero['stock']} {hero['description']}")
def print_purchase_receipt(hero, price, quantity, payment):
total_price = price * quantity
change = payment - total_price
print("\t购买票据\n")
print(f"购买成功:{hero['name']}\n")
print(f"购买金额:{payment}\n")
print("商品信息:")
print(f"姓名:{hero['name']}")
print(f"单价:{hero['price']} 元")
print(f"购买数量:{quantity}")
print(f"总价:{total_price} 元")
print(f"付款金额:{payment} 元")
print(f"找零:{change} 元\n")
print("购买成功,退出英雄商城")
heroes = [
{
'number': 1,
'name': '李青',
'nickname': '盲僧',
'price': 6300,
'stock': '99+',
'description': '我用双手成就你的梦想'
},
{
'number': 2,
'name': '阿狸',
'nickname': '九尾妖狐',
'price': 6300,
'stock': '99+',
'description': '我们去找点儿真正的乐子吧'
}
]
display_hero_info()
print("\n")
hero_name = input("请输入你要购买的英雄(编号/姓名/昵称):")
selected_hero = None
for hero in heroes:
if str(hero['number']) == hero_name or hero['name'] == hero_name or hero['nickname'] == hero_name:
selected_hero = hero
break
if selected_hero is not None:
get_hero_details(selected_hero)
price = int(input("请输入你购买英雄的价格:"))
quantity = int(input("请输入你购买英雄的数量:"))
payment = int(input("请付款,输入你的付款金额:"))
print_purchase_receipt(selected_hero, price, quantity, payment)
else:
print("输入有误,请重新运行程序并输入正确的编号、姓名或昵称")