題目:屏幕上打印1-1000這1000個數, 不許使用循環語句/條件語句,不許使用?:算符。 不許在源代碼中用列舉輸出語句的辦法傻打,比如一千個print語句不行,不再贅述其他傻打行為, 大家都能領會精神。
解答:
newline='\n' numbers=map(lambda x:str(x),range(1,1000)) print newline.join(numbers)
import sys sys.setrecursionlimit(1005) def pr(n): print '%d' % n # t = int(1/(n-1000)) if n < 1000: pr(n+1) # return None # return None pr(1)
在網上查了,發現python默認的遞歸深度是很有限的,大概是900多的樣子,當遞歸深度超過這個值的時候,就會引發這樣的一個異常。
解決的方式是手工設置遞歸調用深度,方式為:
import sys sys.setrecursionlimit(1000000) #例如這里設置為一百萬