【问题标题】:Python: How can I make that my funtion print once?Python:我怎样才能让我的函数打印一次?
【发布时间】:2022-01-21 18:45:46
【问题描述】:

我有这个功能:

def encontrar(data_,departureAirportCode_,departureTime_,arrivalAirportCode_,arrivalTime_):
    for i in range(len(data_flights)):
        data=data_[i]["flights"]
        for k in range(len(data)):
            departureAirportCode=data[k]["departureAirportCode"]
            departureTime=data[k]["departureTime"]
            arrivalAirportCode=data[k]["arrivalAirportCode"]
            arrivalTime=data[k]["arrivalTime"]            
            if departureAirportCode==departureAirportCode_ and departureTime==departureTime_ and arrivalAirportCode==arrivalAirportCode_ and arrivalTime==arrivalTime_:
                code=data_[i]["flights"][k]["itinerary"][0]["flightCode"]
                print(code)
    else:
        print("There is no flights on that date")

像这样打印结果(一个interget):

encontrar(data_flights,"SCL","2022-01-11T15:40:00","PMC","2022-01-11T17:20:00")
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
401
There is no flights on that date

仅:401 在此先感谢,我还是 python 的新手 :) 在此先感谢,我还是 python 的新手 :)

【问题讨论】:

  • 为什么你在函数内部使用数据飞行的长度
  • 您的打印语句在循环内,所以每次循环通过它时,它都会打印 - 您可以将它放在循环外开始吗?
  • 和else部分配对错误
  • 如果你只是想用函数参数过滤数据,尝试使用filterlambda

标签: python for-loop if-statement


【解决方案1】:

你需要像这样在 for 循环中使用 break 语句:

def encontrar(data_,departureAirportCode_,departureTime_,arrivalAirportCode_,arrivalTime_):
    for i in range(len(data_flights)):
        data=data_[i]["flights"]
        for k in range(len(data)):
            departureAirportCode=data[k]["departureAirportCode"]
            departureTime=data[k]["departureTime"]
            arrivalAirportCode=data[k]["arrivalAirportCode"]
            arrivalTime=data[k]["arrivalTime"]            
            if departureAirportCode==departureAirportCode_ and departureTime==departureTime_ and arrivalAirportCode==arrivalAirportCode_ and arrivalTime==arrivalTime_:
                code=data_[i]["flights"][k]["itinerary"][0]["flightCode"]
                print(code)
                break

    else:
        print("There is no flights on that date")

【讨论】:

  • 我认为 continue 在这种情况下在这里是首选。而不是 break 因为它打破了循环..
  • @Madenraj 当然,但他正在尝试打印一次。继续不会解决这个问题,一旦他找到了我理解的机场代码,他就不需要循环运行。此外,python 中带有 for 循环的 else 需要在循环中中断才能运行。
  • 明白了,一个明确的问题可能对所有人都有帮助..
猜你喜欢
  • 2020-10-16
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2022-12-20
  • 2023-02-21
  • 2021-12-25
相关资源
最近更新 更多