Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套循环代码无错误,不执行_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python 嵌套循环代码无错误,不执行

Python 嵌套循环代码无错误,不执行,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有这个代码,它根本不运行。它是一个对象列表,每个对象都有一个二维列表。它甚至不执行代码来显示flightNo元素。我已经创建了一个在对象中显示2d列表的方法,但是什么都没有发生。最后,我用一个简单的打印(“Hello”)进行了测试,这确实有效。有人能告诉我这里有什么问题吗 import sys class Flight: def __init__(self): self.flightNo = "None" self

我有这个代码,它根本不运行。它是一个对象列表,每个对象都有一个二维列表。它甚至不执行代码来显示flightNo元素。我已经创建了一个在对象中显示2d列表的方法,但是什么都没有发生。最后,我用一个简单的打印(“Hello”)进行了测试,这确实有效。有人能告诉我这里有什么问题吗

    import sys
    class Flight:
        def __init__(self):
            self.flightNo = "None"
            self.planeType = "None"
            self.destination = "None"
            self.w = self.h = 0
            self.seats = [["None" for x in range(self.w)] for y in range(self.h)]
            self.depDate = "None"
            self.depTime = "None"
            self.eta = "None"
            self.ticketsSold = 0
            self.pricePerTicket = 0.0

        def displayDetails(self):
            print('Flight No: ', self.flightNo,
                  '\nPlane Type: ', self.planeType,
                  '\nDestination: ', self.destination,
                  '\nDeparture Date: ', self.depDate,
                  '\nDeparture Time: ', self.depTime,
                  '\nETA: ', self.eta,
                  '\nTickets Sold: ', self.ticketsSold,
                  '\nPrice: ', self.pricePerTicket, '\n\n')

        def totalSales(self):
            return print("Total number of tickets sold: ", self.ticketsSold,
                         "\nTotal sales: ", (self.ticketsSold * self.pricePerTicket))

        def buyTicket(self, quantity):
            quantity = int(input("Enter number of tickets required: "))
            cost = quantity * self.pricePerTicket
            for v in range(len(self.seats)):
                for j in range(len(self.seats[v])):
                    if quantity > len(self.seats) * len(self.seats[v]):
                        print("Lessen the number of tickets")
                        break
                    if self.seats[v][j] == "\\__/":
                        self.seats[v][j] = "\\AA/"
                        quantity -= 1
                        if quantity == 0:
                            break
                if quantity == 0:
                    break
            print(quantity, "tickets bought for $", cost,
                  "\nSeats assigned", )
            self.ticketsSold += quantity


    # one = Flight()
    ans = True
    FlightList = []
    while ans:
        print("----------------------------- \n1. Add a flight \n2. Remove a flight \n3. Sell Tickets",
              "\n4. Display seat info \n5. Display total sales for flight \n6. Display flight info",
              "\n7. Display all flight's info \n0. Quit")

        a = int(input("Enter number: "))
        #FlightList = []
        if a == 1:
            one = Flight()
            one.flightNo = input('Enter flight number: ')
            one.planeType = input('Enter plane type: ')
            one.destination = input('Enter destination: ')
            one.w = int(input('Enter number of columns in flight: '))
            one.h = int(input('Enter number of rows in flight: '))
            one.seats = [["\\__/" for x in range(one.w)]
                         for y in range(one.h)]
            one.depDate = input('Enter departure date: ')
            one.depTime = input('Enter departure time: ')
            one.eta = input('Enter ETA: ')
            one.ticketsSold = int(input('Enter number of tickets sold: '))
            one.pricePerTicket = float(input('Price: '))

            FlightList.append(one)

        elif a == 2:
            rem = input('Enter flight number to remove: ')
            for i in FlightList:
                if i.flightNo == rem:
                    del FlightList[FlightList.index(i)]

        elif a == 3:
            for i in range(len(FlightList)):
                print(FlightList[i].flightNo)
            req = input('Enter flight number to buy tickets: ')
            for Flight in FlightList:
                if Flight.flightNo == req:
                    for a in range(len(Flight.seats)):
                        for b in range(len(Flight.seats[a])):
                            print(Flight.seats[a][b], end=" ")
                        print()
                    qty = int(input('Enter number of tickets'))
                    Flight.buyTicket(one, qty)
            print("Hello")

        elif a == 4:
            for Flight in FlightList:
                print(Flight.flightNo)
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    for a in range(len(i.seats)):
                        for b in range(len(i.seats[a])):
                            print(i.seats[a][b], end=" ")
                        print()

        elif a == 5:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.totalSales()

        elif a == 6:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.displayDetails()

        elif a == 7:
            for item in FlightList:
                item.displayDetails()

        elif a == 0:
            sys.exit(0)
编辑:完整代码位于:

    import sys
    class Flight:
        def __init__(self):
            self.flightNo = "None"
            self.planeType = "None"
            self.destination = "None"
            self.w = self.h = 0
            self.seats = [["None" for x in range(self.w)] for y in range(self.h)]
            self.depDate = "None"
            self.depTime = "None"
            self.eta = "None"
            self.ticketsSold = 0
            self.pricePerTicket = 0.0

        def displayDetails(self):
            print('Flight No: ', self.flightNo,
                  '\nPlane Type: ', self.planeType,
                  '\nDestination: ', self.destination,
                  '\nDeparture Date: ', self.depDate,
                  '\nDeparture Time: ', self.depTime,
                  '\nETA: ', self.eta,
                  '\nTickets Sold: ', self.ticketsSold,
                  '\nPrice: ', self.pricePerTicket, '\n\n')

        def totalSales(self):
            return print("Total number of tickets sold: ", self.ticketsSold,
                         "\nTotal sales: ", (self.ticketsSold * self.pricePerTicket))

        def buyTicket(self, quantity):
            quantity = int(input("Enter number of tickets required: "))
            cost = quantity * self.pricePerTicket
            for v in range(len(self.seats)):
                for j in range(len(self.seats[v])):
                    if quantity > len(self.seats) * len(self.seats[v]):
                        print("Lessen the number of tickets")
                        break
                    if self.seats[v][j] == "\\__/":
                        self.seats[v][j] = "\\AA/"
                        quantity -= 1
                        if quantity == 0:
                            break
                if quantity == 0:
                    break
            print(quantity, "tickets bought for $", cost,
                  "\nSeats assigned", )
            self.ticketsSold += quantity


    # one = Flight()
    ans = True
    FlightList = []
    while ans:
        print("----------------------------- \n1. Add a flight \n2. Remove a flight \n3. Sell Tickets",
              "\n4. Display seat info \n5. Display total sales for flight \n6. Display flight info",
              "\n7. Display all flight's info \n0. Quit")

        a = int(input("Enter number: "))
        #FlightList = []
        if a == 1:
            one = Flight()
            one.flightNo = input('Enter flight number: ')
            one.planeType = input('Enter plane type: ')
            one.destination = input('Enter destination: ')
            one.w = int(input('Enter number of columns in flight: '))
            one.h = int(input('Enter number of rows in flight: '))
            one.seats = [["\\__/" for x in range(one.w)]
                         for y in range(one.h)]
            one.depDate = input('Enter departure date: ')
            one.depTime = input('Enter departure time: ')
            one.eta = input('Enter ETA: ')
            one.ticketsSold = int(input('Enter number of tickets sold: '))
            one.pricePerTicket = float(input('Price: '))

            FlightList.append(one)

        elif a == 2:
            rem = input('Enter flight number to remove: ')
            for i in FlightList:
                if i.flightNo == rem:
                    del FlightList[FlightList.index(i)]

        elif a == 3:
            for i in range(len(FlightList)):
                print(FlightList[i].flightNo)
            req = input('Enter flight number to buy tickets: ')
            for Flight in FlightList:
                if Flight.flightNo == req:
                    for a in range(len(Flight.seats)):
                        for b in range(len(Flight.seats[a])):
                            print(Flight.seats[a][b], end=" ")
                        print()
                    qty = int(input('Enter number of tickets'))
                    Flight.buyTicket(one, qty)
            print("Hello")

        elif a == 4:
            for Flight in FlightList:
                print(Flight.flightNo)
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    for a in range(len(i.seats)):
                        for b in range(len(i.seats[a])):
                            print(i.seats[a][b], end=" ")
                        print()

        elif a == 5:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.totalSales()

        elif a == 6:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.displayDetails()

        elif a == 7:
            for item in FlightList:
                item.displayDetails()

        elif a == 0:
            sys.exit(0)
我还尝试了另一种方法来再次显示flightNo,no execution:

for Flight in FlightList:
    print(Flight.flightNo)
re4 = input('Enter flight number to view seats: ')
for i in FlightList:
    if i.flightNo == re4:
        for a in range(len(i.seats)):
            for b in range(len(i.seats[a])):
                print(i.seats[a][b], end=" ")
            print()
    import sys
    class Flight:
        def __init__(self):
            self.flightNo = "None"
            self.planeType = "None"
            self.destination = "None"
            self.w = self.h = 0
            self.seats = [["None" for x in range(self.w)] for y in range(self.h)]
            self.depDate = "None"
            self.depTime = "None"
            self.eta = "None"
            self.ticketsSold = 0
            self.pricePerTicket = 0.0

        def displayDetails(self):
            print('Flight No: ', self.flightNo,
                  '\nPlane Type: ', self.planeType,
                  '\nDestination: ', self.destination,
                  '\nDeparture Date: ', self.depDate,
                  '\nDeparture Time: ', self.depTime,
                  '\nETA: ', self.eta,
                  '\nTickets Sold: ', self.ticketsSold,
                  '\nPrice: ', self.pricePerTicket, '\n\n')

        def totalSales(self):
            return print("Total number of tickets sold: ", self.ticketsSold,
                         "\nTotal sales: ", (self.ticketsSold * self.pricePerTicket))

        def buyTicket(self, quantity):
            quantity = int(input("Enter number of tickets required: "))
            cost = quantity * self.pricePerTicket
            for v in range(len(self.seats)):
                for j in range(len(self.seats[v])):
                    if quantity > len(self.seats) * len(self.seats[v]):
                        print("Lessen the number of tickets")
                        break
                    if self.seats[v][j] == "\\__/":
                        self.seats[v][j] = "\\AA/"
                        quantity -= 1
                        if quantity == 0:
                            break
                if quantity == 0:
                    break
            print(quantity, "tickets bought for $", cost,
                  "\nSeats assigned", )
            self.ticketsSold += quantity


    # one = Flight()
    ans = True
    FlightList = []
    while ans:
        print("----------------------------- \n1. Add a flight \n2. Remove a flight \n3. Sell Tickets",
              "\n4. Display seat info \n5. Display total sales for flight \n6. Display flight info",
              "\n7. Display all flight's info \n0. Quit")

        a = int(input("Enter number: "))
        #FlightList = []
        if a == 1:
            one = Flight()
            one.flightNo = input('Enter flight number: ')
            one.planeType = input('Enter plane type: ')
            one.destination = input('Enter destination: ')
            one.w = int(input('Enter number of columns in flight: '))
            one.h = int(input('Enter number of rows in flight: '))
            one.seats = [["\\__/" for x in range(one.w)]
                         for y in range(one.h)]
            one.depDate = input('Enter departure date: ')
            one.depTime = input('Enter departure time: ')
            one.eta = input('Enter ETA: ')
            one.ticketsSold = int(input('Enter number of tickets sold: '))
            one.pricePerTicket = float(input('Price: '))

            FlightList.append(one)

        elif a == 2:
            rem = input('Enter flight number to remove: ')
            for i in FlightList:
                if i.flightNo == rem:
                    del FlightList[FlightList.index(i)]

        elif a == 3:
            for i in range(len(FlightList)):
                print(FlightList[i].flightNo)
            req = input('Enter flight number to buy tickets: ')
            for Flight in FlightList:
                if Flight.flightNo == req:
                    for a in range(len(Flight.seats)):
                        for b in range(len(Flight.seats[a])):
                            print(Flight.seats[a][b], end=" ")
                        print()
                    qty = int(input('Enter number of tickets'))
                    Flight.buyTicket(one, qty)
            print("Hello")

        elif a == 4:
            for Flight in FlightList:
                print(Flight.flightNo)
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    for a in range(len(i.seats)):
                        for b in range(len(i.seats[a])):
                            print(i.seats[a][b], end=" ")
                        print()

        elif a == 5:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.totalSales()

        elif a == 6:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.displayDetails()

        elif a == 7:
            for item in FlightList:
                item.displayDetails()

        elif a == 0:
            sys.exit(0)

这是我修改了调用方法并分配给变量的位置的工作代码,因为每次我们必须创建一个新的类实例来正确保存数据,我们不应该清除列表,这就是为什么我更改了循环外部的位置。这个我工作正常。对于我的基本测试。如果你需要,我可以改进。并将代码保存在注释中,以便查看更改

    import sys
    class Flight:
        def __init__(self):
            self.flightNo = "None"
            self.planeType = "None"
            self.destination = "None"
            self.w = self.h = 0
            self.seats = [["None" for x in range(self.w)] for y in range(self.h)]
            self.depDate = "None"
            self.depTime = "None"
            self.eta = "None"
            self.ticketsSold = 0
            self.pricePerTicket = 0.0

        def displayDetails(self):
            print('Flight No: ', self.flightNo,
                  '\nPlane Type: ', self.planeType,
                  '\nDestination: ', self.destination,
                  '\nDeparture Date: ', self.depDate,
                  '\nDeparture Time: ', self.depTime,
                  '\nETA: ', self.eta,
                  '\nTickets Sold: ', self.ticketsSold,
                  '\nPrice: ', self.pricePerTicket, '\n\n')

        def totalSales(self):
            return print("Total number of tickets sold: ", self.ticketsSold,
                         "\nTotal sales: ", (self.ticketsSold * self.pricePerTicket))

        def buyTicket(self, quantity):
            quantity = int(input("Enter number of tickets required: "))
            cost = quantity * self.pricePerTicket
            for v in range(len(self.seats)):
                for j in range(len(self.seats[v])):
                    if quantity > len(self.seats) * len(self.seats[v]):
                        print("Lessen the number of tickets")
                        break
                    if self.seats[v][j] == "\\__/":
                        self.seats[v][j] = "\\AA/"
                        quantity -= 1
                        if quantity == 0:
                            break
                if quantity == 0:
                    break
            print(quantity, "tickets bought for $", cost,
                  "\nSeats assigned", )
            self.ticketsSold += quantity


    # one = Flight()
    ans = True
    FlightList = []
    while ans:
        print("----------------------------- \n1. Add a flight \n2. Remove a flight \n3. Sell Tickets",
              "\n4. Display seat info \n5. Display total sales for flight \n6. Display flight info",
              "\n7. Display all flight's info \n0. Quit")

        a = int(input("Enter number: "))
        #FlightList = []
        if a == 1:
            one = Flight()
            one.flightNo = input('Enter flight number: ')
            one.planeType = input('Enter plane type: ')
            one.destination = input('Enter destination: ')
            one.w = int(input('Enter number of columns in flight: '))
            one.h = int(input('Enter number of rows in flight: '))
            one.seats = [["\\__/" for x in range(one.w)]
                         for y in range(one.h)]
            one.depDate = input('Enter departure date: ')
            one.depTime = input('Enter departure time: ')
            one.eta = input('Enter ETA: ')
            one.ticketsSold = int(input('Enter number of tickets sold: '))
            one.pricePerTicket = float(input('Price: '))

            FlightList.append(one)

        elif a == 2:
            rem = input('Enter flight number to remove: ')
            for i in FlightList:
                if i.flightNo == rem:
                    del FlightList[FlightList.index(i)]

        elif a == 3:
            for i in range(len(FlightList)):
                print(FlightList[i].flightNo)
            req = input('Enter flight number to buy tickets: ')
            for Flight in FlightList:
                if Flight.flightNo == req:
                    for a in range(len(Flight.seats)):
                        for b in range(len(Flight.seats[a])):
                            print(Flight.seats[a][b], end=" ")
                        print()
                    qty = int(input('Enter number of tickets'))
                    Flight.buyTicket(one, qty)
            print("Hello")

        elif a == 4:
            for Flight in FlightList:
                print(Flight.flightNo)
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    for a in range(len(i.seats)):
                        for b in range(len(i.seats[a])):
                            print(i.seats[a][b], end=" ")
                        print()

        elif a == 5:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.totalSales()

        elif a == 6:
            re4 = input('Enter flight number to view seats: ')
            for i in FlightList:
                if i.flightNo == re4:
                    i.displayDetails()

        elif a == 7:
            for item in FlightList:
                item.displayDetails()

        elif a == 0:
            sys.exit(0)

“不执行”是什么意思?@MateenUlhaq代码不运行。请修复代码缩进并提供
FlightList
one
值。“@MateenUlhaq代码不运行。”这与原始语句一样没有帮助。缺少项:错误是什么,它是如何运行的,是否有一个自包含的可运行的片段(两个片段都不能按原样运行,第一个片段在语法上都无效,第二个片段缺少
FlightList
数据项)。您指定每个对象都有一个二维数组,您正在访问每个对象中的数据,就好像它有多个属性一样。请提供有关此列表或课程的更多信息。谢谢,它现在起作用了。正如你提到的,你可以改进它,你能给一些更多的建议吗。我是Pythonsure的新手。。。这是正确的答案,或者你希望得到更复杂的答案。请让我知道。是的,它确实有效,所以这是正确的答案。不过,如果您有一些高级解决方案,我很乐意知道。