经实验: Python 2.3 的最大递归深度为 995层。

albertlee 2004-03-19 03:32:46
# fact
# 阶乘 测试, 最大递归深度在995 左右

def fact(n):
if n < 1:
return 1
else:
return n * fact(n - 1)

print fact(5)
print fact(995)

...全文
396 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
albertlee 2004-09-30
  • 打赏
  • 举报
回复
恩,同意楼上的观点
xyzxyz1111 2004-09-30
  • 打赏
  • 举报
回复
我的理解是:
python语言中设了一个recursionlimit是为了防止c栈的溢出并不是python栈. 如果缺省是1000,

而显示995层实际上是python语言栈, 如果加上python bytecode interpretor的c栈就应该是1000.

而且能达到的最大递归深度应该是recursionlimit和由于资源所限制的递归深度二者的较小值.


super852 2004-09-30
  • 打赏
  • 举报
回复
VC是多少层?vb 是多少层? 其它语言呢?
snaill 2004-08-13
  • 打赏
  • 举报
回复
还是和栈的大小有关吧
xyzxyz1111 2004-08-09
  • 打赏
  • 举报
回复
This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python. It can be set by setrecursionlimit().
xyzxyz1111 2004-08-09
  • 打赏
  • 举报
回复
是的,比如你设为10000,就不一定能达到一万
jaminwm 2004-08-09
  • 打赏
  • 举报
回复
楼上的支持!
据python自带的文档说,理论上是1000层,但是各个系统不一定的
xyzxyz1111 2004-08-04
  • 打赏
  • 举报
回复
import sys
print sys.getrecursionlimit()

sys.setrecursionlimit(limit)
niu_a 2004-08-02
  • 打赏
  • 举报
回复
和调用的什么参数有没有关系?
譬如没有参数、一个参数、两个参数等等。
forever921 2004-07-16
  • 打赏
  • 举报
回复
偶在2.3.4上怎么没有结果出来?
albertlee 2004-03-20
  • 打赏
  • 举报
回复
呵呵,经实验得出的结论,当然是试出来的。
lodestar521 2004-03-20
  • 打赏
  • 举报
回复
楼主历害......试一下996就不行....
mikeshi 2004-03-20
  • 打赏
  • 举报
回复
据python自带的文档说,理论上是1000层,但是各个系统不一定的
albertlee 2004-03-20
  • 打赏
  • 举报
回复
哦? 难道是前面 fact(5)造成?不应该压?
要不就是在 idle 里面本身就消耗了几层?
duracell 2004-03-20
  • 打赏
  • 举报
回复
应该是999
1000时已经出错了
duracell 2004-03-20
  • 打赏
  • 举报
回复
而且俺可以用fact(998)哦:

fact(998)

40279005012722099453824067459760158730668154575647110364744735778772623863726628
68789231316185879927932732618720692653239556224954902988577590829125825271181155
40044131204964883707335062250983503282788739735011132006982444941985587005283378
02452081186826214958747396129841759864447025390175172874121785074057653226770021
33987226811442197771863005629804548041517051337803569686364338304993196108181973
41194914502752560687555393768328059805942027406941465687273867068997087966263572
00339624064392515671532636334014149880301918793554522109244075277825684616693410
32356841103464778903991793873876493324835108526806583631477836518219863513755292
20618900164975188281042287183543472177292257232652561904125692525097177999332518
63544700061645299998403073971531821916970732379964737579768736701325820336412948
28910899913768193072922522055246263497052618640034538535898706207585962115186464
08335184218571196396412300835983314926628732700876798309217005024417595709904449
70693079633779886175394190212596493641250100728414711426093563319610734142386307
12313851660559499144326959396112279901693382480279398435976289035258158038090044
48863145157344706452445088044626373001304259830129153477630812429640105937974761
66778504520398750825977606028582609126174504927541939368061367536626423271530543
08892163846110691356624323910437259988058816630549130919816338420063546995255187
84828195856033032645477338126512662942408363494651203239333321502114252811411713
14884337059480114577757503563031288598977986388832075922488212714154436625150397
49101007216506738103035770746401541128333930472760257998112245715342496725183807
58145683914398263952929391318702517417558325636082722982882372594816582486826728
61463319972621127307277513132522224010014095284257249080182299422406997161353460
34878749968524986235843831060145338306500224110536685081655478389620871112979473
00444414551980512439088964301520461155436870989509667681805149977993044444138428
58206514278735645552868111439268095081541820807239353261612233943443703442428784
21193160588811298874742399923365567643379685380368619499188470097636124758727827
42568849805927378373244946190707168428807837146267156243185213724364546701100557
71452046233508408217643117334692933039407147607181359875958881895431239423433132
77002244550158717754761003716150319409450987888948288126484263657767467745280000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00L
duracell 2004-03-20
  • 打赏
  • 举报
回复
不好意思
楼主好像不对耶

俺试下来好像是1000哦:

>>> def test(n):
... try:
... n+=1
... test(n)
... except Exception,e:
... print n, e
...
>>> test(1)
1000 maximum recursion depth exceeded
acuter 2004-03-20
  • 打赏
  • 举报
回复
楼主好强啊。

小弟敬佩。
albertlee 2004-03-19
  • 打赏
  • 举报
回复
>>>
120
406437429372911810071707620504996316369694779581106664803958032466069525746988378515441790618198682607763716046197022512713251519746540788713981108182907123027358512075171846841386259548711348312108005471427734939620777856323299427829814400368977625938900868515149759604704446863530299534501534338407544163682478760476217223515724621349155419414115317250578456790252468979651282555110845368609004248079562865567867376149942000882858856371633620435940486071854353764181341666733034254387940123907667093608415507507846396772134593922310157933491723386316330959727775777403383095470344340789900394429705151192404928812025189188201446650451399692291113230088721994348902095320528891255073653743019450507009238168725861260894573612065054945643507563054750159464205312943078343060301062549558497347968737282514065999998388848782559263133407867106464083241601987625267474077386051804807998630284357522427238993280268955649379092292027748824930111625070479076635125908856026591514689885135706979819835657276960222972144490247887945568953826719737839880178040919433896284365345042406830080242264031169899019507540663914750715882798276061693608630953226485402060110078592188011557381698369137833416493553116272370831423296605404276281109594069904845506339457866434048559868794260780017440663824957484879356114538850786938127642787318486044318471004067649187789503032682147201554135683959756749441779024229070670054257640571915072911774125134346036266912990957357914042989298027875621381280302448791030235543374018625667553896189674558137638211285200766096846123591530191528549072083858083680110857406700829384474323490300115265548730068119528803771293201335907993377241579583799509294423104621662510010949776631056874865631413177146582525675886826424612531114897450008518735209213983810474393037610968265710373289358717746171534809334767716634803876523660782986358888779610519817010791607582313250596034509800931774963933381437853029661800496898837623082762053333858138364486293135804359705642503196136631122817429879415069065644223073313606622117781873901191124731849457606713239649606099469756834916633283458197614580697094087882755099718149308313603400809896330205332291431745816402376698581282542415750355741912532687840222251468970892438276846264724169505538643696939887649942923333570722457929628287208918089728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧