Python作业帮助请求

时间:2015-03-17 06:05:05

标签: python

我需要一些关于为什么我没有从我的代码中获得所需结果的输入。

以下是代码:

def main():
    SEAT_LIMIT_A=300
    print("Enter the total amount of tickets sold for Section A")
    sectionA=getTickets(0, SEAT_LIMIT_A)
    print("The total amount of tickets sold for section A is",sectionA)

def getTickets(ticket, SEAT_LIMIT):
    ticket=int(input("Enter:"))
    ticketsInvalid(ticket, SEAT_LIMIT)
    return ticket

def ticketsInvalid(ticket, SEAT_LIMIT):
    while ticket <0 or ticket > SEAT_LIMIT:
        print ("Error: The amount of tickets sold can't be less than 0 or more than",SEAT_LIMIT)
        ticket=int(input("Please enter the correct amount here: "))
        return ticket

main()

我基本上需要获得电影院中某个部分售出的门票数量,然后我需要一个验证循环来验证输入的数字是否不小于或大于该部分的座位限制(在此case它是A,但是一旦我弄清楚这一部分,我还需要在程序中实现更多)。我的教授希望我们创建一般功能,以帮助完成任何需要检查的部分的过程。她希望main函数通过调用getTickets函数来询问销售的内容,然后她希望getTicket函数的输入传递给ticketsInvalid函数,因此可以检查,然后她希望将其传递回要显示的主要功能。

以下是我的代码示例测试的输出:

Enter the total amount of tickets sold for Section A
Enter:400
Error: The amount of tickets sold can't be less than 0 or more than 300
Please enter the correct amount here: 200
The total amount of tickets sold for section A is 400

我似乎无法弄清楚如何在验证循环中输入的数量正确显示在主函数中。任何帮助,如果没有严重改变我的代码将非常感激。我可以很容易地完成这个程序,不得不从函数到函数传递参数,但这就是她想要的......对于长篇文章,很抱歉,她希望我们实现很多公牛规则。我是编程的全新手,所以在编写解决方案/解释时请记住这一点:)

2 个答案:

答案 0 :(得分:0)

从方法getTickets(ticket, SEAT_LIMIT),您将返回故障单的旧值。从ticketsInvalid(ticket, SEAT_LIMIT)返回的新值未使用。

所以在getTickets()方法中做一个小修改。

def getTickets(ticket, SEAT_LIMIT):
    ticket=int(input("Enter:"))
    return ticketsInvalid(ticket, SEAT_LIMIT)

答案 1 :(得分:0)

为ticketsInvalid中的ticket变量分配新值时。它创建新的int对象并分配给ticket变量。并且你没有在getTickets中使用fun ticket的返回值。

希望你明白了。