【发布时间】:2014-03-11 04:16:13
【问题描述】:
很抱歉在这个时间打扰你,但我真的在为一个程序而苦恼。我正在做一个 python 项目,我有一套非常具体的说明要遵循。在主模块中使用本地命名常量来获取座位成本和部分座位限制,这些常量将传递给以下几点描述的模块和函数。这些是说明。
• 尽管问题中有三个座位区,但将创建一组通用函数,用于基于传递的参数的任何给定区。这些函数将为每个部分调用一次:A、B 和 C。这些函数的一般逻辑如下所述:
1.) 包含输入函数 (getTickets),该函数将给定部分的部分字母和座位限制作为参数。返回给定部分的票数。这个函数应该只返回有效数量的票;应该从此函数调用验证函数ticketValid。
2.) 包含验证函数 (ticketsValid),它将每节售出的门票和每节的座位限制作为传递的参数。返回一个布尔值,指示为给定部分出售的通过票是否在有效范围内。此验证函数将从先前定义的 getTickets 函数中调用。
3.)包括收入计算函数(calcIncome),它以售票和座位成本为传递参数,并返回该部分产生的收入。
现在我的问题是,我不明白为什么我的验证器不能正常工作。我将它放在另一个函数中,但是当我运行代码时,它只是一起跳过了验证。 这是我的代码,任何帮助表示赞赏。再次感谢您在深夜提供帮助! :)
def Main():
aPrice=20
bPrice=15
cPrice=10
alimit=100
blimit=500
climit=200
ticketSold=0
getTickets(alimit)
calcIncome(ticketSold,aPrice)
getTickets(blimit)
calcIncome(ticketSold,bPrice)
getTickets(alimit)
calcIncome(ticketSold,cPrice)
def getTickets(limit):
ticketSold =int(input("How many tickets were sold in section? "))
ticketsValid(ticketSold,limit)
return ticketSold
def ticketsValid(ticketSold,limit):
if (ticketSold>limit | ticketSold<0):
print ("ERROR: Section A needs to be a number between 0 and 300")
def calcIncome(ticketSold,price):
totalIncome= (price*ticketSold)
print ("The total income for the theater section is "+str(totalIncome))
Main()
【问题讨论】:
-
我在您粘贴的代码中没有看到“函数内的函数”...
-
当我通过getTickets里面的ticketValid时
-
对不起,我是新手,我会突出显示
-
if (ticketSold>limit | ticketSold<0):。您可能想在 python 中使用逻辑或运算符,即or。|是按位或运算符。 -
|==>or... -- 好像是一个错字。
标签: python function parameter-passing