要求:设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)
展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
输入付款金额->打印购买小票(扩展)
代码如下(简单版本):
- 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("输入有误,请重新运行程序并输入正确的编号、姓名或昵称")