创建一个名为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