Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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 while循环中的多个for循环_Python_For Loop_While Loop - Fatal编程技术网

python while循环中的多个for循环

python while循环中的多个for循环,python,for-loop,while-loop,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)

我是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
def runloop():

而uid可以在其他循环中放入任意多个循环。这些称为嵌套循环

此外,打印词典也很简单:

mydict = {}
print mydict
在嵌套循环上:

在python出现错误之前,可以非常深入地嵌套for和while循环,但超过4个深度通常是不好的。如果您发现自己需要进行大量嵌套,请执行另一个函数。不过你的用处很好

代码中的一些问题:

  • 它永远不会到达print语句,因为在第一个for循环下有一个return语句。当python在函数中看到返回时,它将离开函数并显示返回值
  • 我会避免使用try和except,直到你明白为什么会出现没有这些错误的错误
  • 确保压痕一致。可能是复制粘贴错误,但看起来有些行的缩进比其他行更像是一个字符。确保每个选项卡都有4个空格。与大多数语言不同的是,如果缩进关闭,Python会崩溃
  • 不确定是否只是没有发布函数调用,但需要调用
    runloop()
    才能实际使用函数

到处都是这些东西,这对你没有帮助

       except Exception:  
           continue
基本上就是说,“如果出了什么问题,带一个,不要告诉我。”

这样至少可以让您看到异常

       except Exception as e:
           print e  
           continue

mydict
是否在某处声明?这可能是您的问题

打印字典:
从pprint导入pprint
然后
pprint(您的字典)
。如果你想知道更多的话,你可以读一下。当我运行它时,没有打印任何内容。我没有投票否决你。我建议你尝试采纳@nren、@gnibbler和@Cryo的建议:插入一些
print
s,看看代码是否真的达到了你的预期。按照@gnibbler在下面告诉您的那样,删除
离子,或者通过重写它们来提供信息。如果您想确保一步一步地执行:取消对所有代码的注释。只需逐行添加基本代码,并在每次小更改后运行程序,观察
打印
的更改(或不更改)情况,直到您得到所需的内容。谢谢!当我运行此脚本时,不会打印任何内容。甚至没有{}。您现在正在做的是调试,或者解决代码中的错误。调试时,重要的是能够在程序逐步执行代码的过程中跟踪程序,以了解为什么它没有打印某些内容,或者为什么它没有按照预期的方式运行。您可以使用的一种简单技术是插入“print”语句来打印某些变量的值,例如确定循环执行多少次的变量,以了解为什么从未到达print语句。