一个python的递归问题-----这是超薄弱环节,一涉及到大脑就短路了。

2013-06-21 21:16:50 +08:00
 manoon
http://codepad.org/riZNFhIZ



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def getMaxpage():
page=2
dir_url="http://aa.wordpress.com/2013/06/page/"+str(page)
page_flag=getPageFlag(dir_url)
if page_flag==0:
page="maxpage"+str(page)
else:###受不了,这里可能也许需要用到递归!!!!
page=page+1
dir_url="http://fashioncoolture.com.br/2013/06/page/"+str(page)#这个要更新的
getPageFlag(dir_url)#这个是根据404来判断是否是最后一页

print page


另外一个版本:


def getMaxpage():
page=2
dir_url="http://aa.wordpress.com/2013/06/page/"+str(page)
page_flag=getPageFlag(dir_url)
while page_flag:
page=page+1
dir_url="http://fashioncoolture.com.br/2013/06/page/"+str(page)#这个要更新的
getPageFlag(dir_url)#这个是根据404来判断是否是最后一页
print page
3019 次点击
所在节点    问与答
14 条回复
manoon
2013-06-21 21:17:54 +08:00
我怎么用CODEPAD贴不来代码~~~~
zorceta
2013-06-21 21:19:43 +08:00
直接用while不好吗
另外可以用"page/%d" % page让字符串好看点
wenbinwu
2013-06-21 21:21:33 +08:00
你想问什么?没弄懂
reorx
2013-06-21 21:35:52 +08:00
iloahz
2013-06-21 21:42:18 +08:00
def getMaxpage(page = 2):
...
if page_flag == 0:
return page
else:
return getMaxpage(page + 1)

对于递归,感觉想好状态(参数),想好递归出口就好了。另外同这里觉得while就够了
manoon
2013-06-21 21:46:00 +08:00
@iloahz 好像,看上去好简单的样子。我试试哈,短路的人,脑子桑不起。
yuelang85
2013-06-21 21:51:57 +08:00
yuelang85
2013-06-21 21:52:13 +08:00
manoon
2013-06-21 21:52:54 +08:00
@reorx 你的代码正是我想要的。。。。。谢谢。

可是,我怎么就搞不来呢?每次都是这样,关于递归关于其它。看别人的,能看懂。自己就很难写出来。
manoon
2013-06-21 21:55:40 +08:00
@yuelang85 大家都当成练习题了哈。谢谢。
reorx
2013-06-21 22:07:36 +08:00
@manoon 记得第一次被递归的问题困扰,是写一个复杂无比的字典结构检查器,抱着一大瓶可乐一直盯着屏幕看到凌晨4、5点才豁然贯通。大概还是没熬到吧 XD
yuelang85
2013-06-21 22:09:53 +08:00
@manoon 兄台,我一直认为递归是反人类的。

而且,递归这种东西,平时真是用的很少,根据我的经验,每到认为需要用递归的时候,往往都是一个while搞定。

确实有那种非递归的情况,这种情况真的很少见很少见。
Golevka
2013-06-22 10:03:55 +08:00
@yuelang85 或许是因为你没写过解析器/解释器/编译器, 否则你会认为递归非常非常常见.
yuelang85
2013-06-22 10:41:21 +08:00
@Golevka 额。。。我用过的几次递归,还真是在解析器一类的地方。。。。

你说得对,这些地方递归很常见。

我是说写一般的常见项目中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/73179

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX