创建一个名为确定价格的函数,该函数将确定所购买软件的成本。该软件的价格是每个许可证350美元。但是,当大量购买时,会得到折扣。如果数量少于10份,则没有折扣。对于数量大于10且小于等于20的数量,将给予10%的折扣。对于数量大于20且小于等于30的数量,给出20%的折扣。对于数量大于30且小于等于40的数量,提供30%的折扣。最后,如果某人需要购买40多个副本,则可以享受40%的折扣。
您的功能需要考虑用户希望购买的数量。它需要返回给main()折扣和购买软件的总成本。
输出和测试 MyProgramming Lab将调用您的函数。因此,您必须确保将函数的名称命名为ChoicePrice()。否则,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)
我的错误是说折扣未定义,但我认为它是在def(DeterminePrice)下
答案 0 :(得分:1)
这是因为discount
是主函数的局部变量。
如果您缩进打印线,并使其成为主要打印线,则可以纠正该错误。
#!/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()
作为旁注,您可以使用字符串格式来使外观更好看。参见string formatting
输出:
Enter the number of copies : 55
Discount: $ 7700.0
Total: $ 11550.0
答案 1 :(得分:-1)
折扣与您所称呼的范围不在同一范围内。
您在确定价格函数中声明了折扣
def DeterminePrice(numberOfCopies):
discount=0 #<-HERE!
price=numberOfCopies*350
折扣不在主要范围内,仅在确定价格功能内
您可以将其设置为全局变量,从而可以从DefinePrice函数范围的内部和外部对其进行访问
def DeterminePrice(numberOfCopies):
global discount
discount=0
price=numberOfCopies*350