【发布时间】:2012-09-19 21:01:30
【问题描述】:
我需要一些帮助才能将以下代码转换为更易于管理的代码。 我很确定我需要修改它以包含一些 while 语句。但是在最后一天左右一直把我的头撞到墙上。我想我已经接近了......
for LevelItemList[1] in LevelUrlList[1]:
if LevelItemList[1][1] == "Folder":
printFolderHeader(1,LevelItemList[1][0])
LevelUrlList[2] = parseHTML (LevelItemList[1][2])
for LevelItemList[2] in LevelUrlList[2]:
if LevelItemList[2][1] == "Folder":
printFolderHeader(2,LevelItemList[2][0])
LevelUrlList[3] = parseHTML (LevelItemList[2][2])
for LevelItemList[3] in LevelUrlList[3]:
if LevelItemList[3][1] == "Folder":
printFolderHeader(3,LevelItemList[3][0])
LevelUrlList[4] = parseHTML (LevelItemList[3][2])
for LevelItemList[4] in LevelUrlList[4]:
if LevelItemList[4][1] == "Folder":
printFolderHeader(4,LevelItemList[4][0])
LevelUrlList[5] = parseHTML (LevelItemList[4][2])
for LevelItemList[5] in LevelUrlList[5]:
if LevelItemList[5][1] == "Folder":
printFolderHeader(5,LevelItemList[5][0])
LevelUrlList[6] = parseHTML (LevelItemList[5][2])
for LevelItemList[6] in LevelUrlList[6]:
printPage(6,LevelItemList[6][0])
printFolderFooter(5,LevelItemList[5][0])
else:
printPage(5,LevelItemList[5][0])
printFolderFooter(4,LevelItemList[4][0])
else:
printPage(4,LevelItemList[4][0])
printFolderFooter(3,LevelItemList[3][0])
else:
printPage(3,LevelItemList[3][0])
printFolderFooter(2,LevelItemList[2][0])
else:
printPage(2,LevelItemList[2][0])
printFolderFooter(1,LevelItemList[1][0])
else:
printPage(1,LevelItemList[1][0])
【问题讨论】:
-
或者递归...看起来你正在遍历一个目录树。
-
递归看起来像我要走的路。
-
如果这段代码有效,它可能更适合
codereview.stackexchange,但我想我们会等着看其他人是否同意...... -
是什么让您认为将
for语句转换为while语句会有所帮助?如果我们知道这一点,那可能会给我们一个线索,让我们知道该看什么。 -
上面的代码确实有效。不知道 codereview.stackexchange。目前,每个“级别”都有很多代码重复。随着越来越多的条件增加重复,变得越来越大。因此试图简化它,以便 If 案例只启动一次并且只迭代 X 次。
标签: python loops if-statement while-loop