Python字典的应用

根据客户等级及订货量计算订货额。
建立字典,客户分ABCD (不区分大小写)类,A类客户享受9折优惠,B类客户享受92折优惠,c类客户享受95折优惠,D类客户不享受折扣优惠。假定商品标准价格是100元。不管哪一类客户, 对不同的订货量,还可享受不同的价格优惠:订货量小于500无折扣,500-1999折扣0.05,2000-4999折扣0.1, 5000-20000折 扣0.15,20000以上折扣0.2。客户可同时享受价格优惠和客户等级优惠。订货量为整数。
要求:只要输入客户等级和订货量,就计算出订货额;客户等级和订货量需判断是否输入正确,客户等级或订货量不输入任何字符或者输入有误,均会退出程序,显示“请输入正确信息,谢谢!”



"""
根据客户等级及订货量计算订货额。
建立字典,客户分ABCD (不区分大小写)类,
A类客户享受9折优惠,
B类客户享受92折优惠,
c类客户享受95折优惠,
D类客户不享受折扣优惠。
假定商品标准价格是100元。
不管哪一类客户, 对不同的订货量,还可享受不同的价格优惠:
订货量小于500无折扣,
500-1999折扣0.05,
2000-4999折扣0.1, 
5000-20000折 扣0.15,
20000以上折扣0.2。
客户可同时享受价格优惠和客户等级优惠。订货量为整数。
要求:只要输入客户等级和订货量,就计算出订货额;客户等级和订货量需判断是否输入正确,客户等级或订货量不输入任何字符或者输入有误,均会退出程序,显示“请输入正确信息,谢谢!”
"""

def main(clientGrade, orderQuantity):
    try:
        clientGrade = clientGrade.lower()
        orderQuantity = int(orderQuantity)
        if clientGrade not in ("abcd") or type(orderQuantity) == type(1) or orderQuantity < 1 :
            """客户等级属于abcd, 或者 订货额度非整数 且 订货额度<1, 否则程序异常 """
            print("请输入正确信息,谢谢!")
            return 1
        money = round(price(clientGrade, orderQuantity), 2)
        print(f"客户等级{clientGrade}, 订货量:{orderQuantity}, 金额:{money}")
        return 0
    except Exception as error:
        """捕获输入异常 """
        print(f"请输入正确信息,谢谢! {error}")
        return 1




def price(clientGrade, orderQuantity):
    """计算金额订货量金额"""
    if orderQuantity >= 20000:
        money = orderQuantity * 100 * 0.8
    elif orderQuantity >= 5000:
        money = orderQuantity * 100 * 0.85
    elif orderQuantity >= 2000:
        money = orderQuantity * 100 * 0.9
    elif orderQuantity >= 500:
        money = orderQuantity * 100 * 0.95
    else:
        money = orderQuantity * 100
    """计算客户等级金额"""
    if clientGrade == "a":
        money = a(money)
    elif clientGrade == "b":
        money = b(money)
    elif clientGrade == "c":
        money = c(money)
    else:
        money = d(money)
    return money

def a(money):
    return money * 0.9

def b(money):
    return money * 0.92

def c(money):
    return money * 0.95

def d(money):
    return money

if __name__ == '__main__':
    orderQuantity = input("请输入订货量:")  # 订货量
    clientGrade = input("请输入客户等级:") # 客户等级
    money = main(clientGrade, orderQuantity)