python while循环中的多个for循环
我是python/编码新手,我正在尝试将两个for循环转换成while循环?我能做这个吗?如何打印字典mydict以确保正确执行此操作 我卡住了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)
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语句。