根据客户等级及订货量计算订货额。
建立字典,客户分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)