模块化:程序计算百分比折扣



创建一个名为DeterminePrice的函数,该函数将确定购买软件的成本。 该软件的价格为每个许可证 350 美元。 但是,当大量购买时,会给予折扣。 对于少于 10 份的数量,没有折扣。 对于大于 10 且小于 20 的数量,可享受 10% 的折扣。 对于大于 20 且小于 30 的数量,可享受 20% 的折扣。 对于大于 30 且小于 40 的数量,可享受 30% 的折扣。 最后,如果有人需要购买40多份,则可享受40%的折扣。

您的函数需要考虑用户希望购买的数量。 它需要将给定的折扣和软件购买的总成本返回到 main()。

输出和测试 MyProgramming Lab 将调用您的函数。 因此,您必须确保将函数命名为 DeterminePrice()。 否则,MyProgramming 实验室将无法找到您的函数。 此外,当您编写函数时,请确保它首先返回折扣,然后返回总计。 否则,您的折扣和总额将无法正确打印出来。

运行函数时,第一个测试的输出将如下所示:

Enter the number of copies:  35
Discount:  $ 105.00
Total:     $ 8,575.00

def DeterminePrice(numberOfCopies): 
discount=0 
price=numberOfCopies*350 
if (numberOfCopies <= 10):
discount=0
elif(numberOfCopies>10 and numberOfCopies <= 20):
discount=price*10/100
elif(numberOfCopies>20 and numberOfCopies <= 30):
discount=price*20/100
elif(numberOfCopies>30 and numberOfCopies <= 40):
discount=price*30/100
elif(numberOfCopies>40):
discount=price*40/100
totalPrice=price-discount
return discount,totalPrice

def main():  
copies=int(input("Enter the number of copies : "))
discount,price=DeterminePrice(copies)
print("Discount: $",discount) 
print("Total: $",price)

我的错误说折扣是 nt 定义的,但我认为它是在 def(确定价格)下

这是因为discount是主函数的局部变量。

如果您缩进打印行并将它们设为 main,它将修复错误。

#!/usr/bin/env python3
def DeterminePrice(numberOfCopies):
discount=0
price=numberOfCopies*350
if (numberOfCopies <= 10):
discount=0
elif(numberOfCopies>10 and numberOfCopies <= 20):
discount=price*10/100
elif(numberOfCopies>20 and numberOfCopies <= 30):
discount=price*20/100
elif(numberOfCopies>30 and numberOfCopies <= 40):
discount=price*30/100
elif(numberOfCopies>40):
discount=price*40/100
totalPrice=price-discount
return discount,totalPrice
def main():
copies=int(input("Enter the number of copies : "))
discount,price=DeterminePrice(copies)
print("Discount: ${}".format(discount)) #Added print formatting statement
print("Total: ${}".format(price)) 
if __name__ == "__main__":
main()

作为旁注,您可以使用字符串格式来执行更好看的打印语句。请参阅字符串格式

输出:

Enter the number of copies : 55
Discount: $ 7700.0
Total: $ 11550.0

折扣与您调用它的范围不同。

您在确定价格函数中声明了折扣

def DeterminePrice(numberOfCopies): 
discount=0 #<-HERE!
price=numberOfCopies*350 

折扣不在主要范围内,仅在确定价格的功能范围内

您可以将其设置为全局变量,这样就可以从 DeterminePrice 函数的内部和外部访问它

def DeterminePrice(numberOfCopies): 
global discount
discount=0 
price=numberOfCopies*350 

相关内容

  • 没有找到相关文章

最新更新