python while循环中有多个for循环

时间:2011-07-11 02:47:35

标签: python for-loop while-loop

我是一个python /编码新手,我试图将两个for循环放入while循环中?我可以这样做吗?如何打印字典mydict以确保我正确地执行此操作?

我被困住了。


40分钟后。不再卡住了。谢谢大家!

def runloop():
    while uid<uidend:
        for row in soup.findAll('h1'):
            try:
                name = row.findAll(text = True)
                name = ''.join(name)
                name = name.encode('ascii','ignore')
                name = name.strip()
                mydict['Name'] = name
           except Exception:  
                continue

        for row in soup.findAll('div', {'class':'profile-row clearfix'}):
            try:
                field = row.find('div', {'class':'profile-row-header'}).findAll$
                field = ''.join(field)
                field = field.encode('ascii','ignore')
                field = field.strip()
            except Exception:
                continue
            try:
                value = row.find('div', {'class':'profile-information'}).findAl$
                value = ''.join(value)
                value = value.encode('ascii','ignore')
                value = value.strip()
                return mydict
                mydict[field] = value
                print mydict
            except Exception:
                continue
    uid = uid + 1

runloop()

3 个答案:

答案 0 :(得分:1)

在嵌套循环上:

你可以在python中给你一个错误之前非常深入地嵌套for和while循环,但是超过4深度通常是不好的形式。如果你发现自己需要做很多嵌套,那就做另一个功能。你的使用很好。

代码存在一些问题:

  • 它永远不会到达print语句,因为在第一个for循环中你有一个return语句。当python在函数内部看到返回时,它将离开函数并显示返回值。
  • 我会避免使用尝试,除非你明白为什么你会得到没有那些你得到的错误。
  • 确保缩进是一致的。也许这是一个复制和粘贴错误,但看起来某些行的缩进比其他行更多。确保每个标签都是4个空格。与大多数语言不同,Python会在缩进失败的情况下发生。
  • 不确定您是否刚刚发布了函数调用,但是您需要调用runloop()来实际使用该函数。

答案 1 :(得分:0)

您可以根据需要在其他循环中放置尽可能多的循环。这些称为嵌套循环。

另外,打印字典很简单:

mydict = {}
print mydict

答案 2 :(得分:0)

你没有帮助自己实现这些目的

       except Exception:  
           continue

基本上说,“如果出现任何问题,请携带一个,不要告诉我。”

这样的事情让你至少可以看到异常

       except Exception as e:
           print e  
           continue

mydict是否在某处宣布?这可能是你的问题