【问题标题】:while loop and method calls while loop iteration pause until methofs finish pythonwhile循环和方法调用while循环迭代暂停直到methofs完成python
【发布时间】:2015-08-11 06:11:00
【问题描述】:

我在注释掉的部分下方有一个 while 循环来自之前的测试。

我希望 while 循环会从上到下执行方法,并且随着方法完成,下面的方法将开始。

当代码不在正在发生的 while 循环中时,我的希望是有效的。或者只是看起来是这样的?

我的意思是代码的执行方式使得我上面的假设似乎是错误的。

谁能给我解释一下?

counter = (len(cities)-1)
count = 0
while count != counter:
    setCity(cities[count])
    getApiData()
    #populateVars()
    #storeInDatabase()
    #goToNextPage()
    count +=1
storeData.createCSV(OTS.CSVname)
storeData.purgeDatabase()

【问题讨论】:

  • 对我来说太晚了,所以我不会解释它,但你可以使用for i in range(counter - count): insted of while count != counter: 抱歉,我什至不知道你是否要求这样做,可能不是。跨度>
  • 具体是什么不起作用?
  • 代码确实从上到下同步执行,除非您特别做了一些事情来偏离该行为。如果您想向自己证明这一点,请使用 import pdb;pdb.set_trace() 并使用“s”命令逐步完成。

标签: python loops while-loop


【解决方案1】:

只在没有索引的情况下遍历数组:

for city in cities:
    setCity(city)
    getApiData()

【讨论】:

    【解决方案2】:

    似乎代码确实是按顺序运行的,除非幕后有一些你不知道或没有提到的并发。

    就您的代码而言,我认为您错误地从 len(cities) 中减去了 1;无论如何,您应该使用 for 循环直接遍历城市。

    for city in cities:
        setCity(city)
        getApiData()
        # populateVars()
        # storeInDatabase()
        # goToNextPage()
    
    storeData.createCSV(OTS.CSVname)
    storeData.purgeDatabase()
    

    如果有任何更改/说明,我将更新此答案。

    【讨论】:

    • 以相关方式发布我正在处理的代码意味着你们阅读的重要代码。我要再试一次,让你们免于这样的麻烦。如果需要生病问一个新问题。谢谢大家
    猜你喜欢
    • 1970-01-01
    • 2019-08-31
    • 2017-03-12
    • 1970-01-01
    • 2022-10-12
    • 2016-06-07
    • 2021-08-20
    • 2017-12-14
    • 2020-09-29
    相关资源
    最近更新 更多