问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 求助

发布网友 发布时间:2022-04-26 16:10

我来回答

4个回答

懂视网 时间:2022-04-19 00:50

在python里递归最多达到多少次?因为在跑程序的时候,次数有时多有时少,以前没有想过这个问题。那就自己动手在验证验证, 代码如下:

def recursion(n):
 if(n <= 0):
 return
 print n
 recursion(n - 1)
 
if __name__ == "__main__":
 recursion(1000)

当在我自己的机器运行以上代码时,发现最多能打印到998,然后就会抛出 “RuntimeError: maximum recursion depth exceeded” 的错误了。 嘿,还真有限制。但转念一想,python不会这么弱吧。经过一番查找,发现这是python专门设置的一种机制用来防止无限递归造成Python溢出崩溃, 最大递归次数是可以重新调整的。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit),修改代码如下:

import sys
sys.setrecursionlimit(1500) # set the maximum depth as 1500
 
def recursion(n):
 if(n <= 0):
 return
 print n
 recursion(n - 1)
 
if __name__ == "__main__":
 recursion(1200)

热心网友 时间:2022-04-18 21:58

在new_L处递归了(自己调用自己,在Python里递归上限默认是1000次,效率也不高,可见这只是程序员蛋疼出来的,或者只是教学代码)

先把表头作为temp,再把去掉第一项的L传给reverse,reverse又会再调用自己,于是不断地调用自身。
直到只剩一项时, 由"if len(L) == 1: return L"破坏递归,向后返回.
然后边返回,边把temp附到表后.直到第一个reverse,于是最终返回的是倒过来的L.

假如你传入[1,2,3],演示一下执行顺序:

temp = 1
new_L = reverse([2, 3])
.. temp = 2
.. new_L = reverse([3])
.. return [3]
.. return [3, 2]
return [3, 2, 1]
#缩进表示名称空间,由LGB(Local-Global-Buildin)规则, 不同名称空间中temp不是同一变量

热心网友 时间:2022-04-18 23:16

这是一个递归函数,可用作字符串的倒置,明白不?~~~
例子,"abcd"

首先,进入时候判断,L的长度是不是1,如果是1,那么,就没必要倒置了,倒置结束,退出函数。

不是1,进入else部分, temp 赋值第一个值a,然后用bcd,在调用,之后cd调用,之后d调用,发现长度是1,返回这个时候,new_L=='d'。然后依次到来的是c,b,a .new_L最后为dcba。 去补充下递归的知识,理解这个就很容易了

热心网友 时间:2022-04-19 00:51

  楼主不妨试试这个函数的功能
  比如:
  #!python
  def reverse(L):
  if len(L) == 1:
  return L
  else:
  temp = L[0]
  new_L = reverse(L[1:])
  new_L.append(temp)
  return new_L
  if __name__ == "__main__":
  test = [1,2,3]
  test2 = ['a','b','c']
  print reverse(test),'\n',reverse(test2)
  pass
  运行一下接可以按结果 分析程序了

  注意::另外对程序的分析 已经有人做了分析 我是借用 kukumaiwu 朋友的

  def reverse(L): //定义一个方法reverse,其实看英语意思就知道,是翻转,参数为L
  if len(L) == 1://如果L的长度为1,不做翻转直接返回,比如L=a那么返回a
  return L//返回语句
  else:
  temp = L[0]//否则的话取L当中的第一个字符,把它赋值给temp
  new_L = reverse(L[1:])//然后把L当中剩下的内容在使用reverse方法来判断,需要翻转的话继续执行,直到不需要翻转为止,然后赋值给new_L
  new_L.append(temp)//最后把刚才取下的第一个字符追加到new_L之后
  return new_L//返回new_L,这个时候new_L就已经是翻转好的字符串了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
激素替代疗法用什么药 激素替代治疗:激素不是自来水,想停就停 绝经期激素替代治疗是怎么回事 什么是内分泌治疗 激素替代治疗:缺啥补啥 关于王菲的花事了和sophiezelmani的Going home 推荐几首类似乘客、单行道、打错了、歇斯底里(林宥嘉)曲风的歌曲... 这个戒指是金的吗? ...了我一个金戒指可是都快被我给折断了那这个是不是假的金戒指啊!那... 猪肉里面有寄生虫找哪个部门投诉 python入门? 新买了一个号码,在注册QQ时说此号码有风险不能注册 定义函数对列表进行顺序翻转,不使用reverse等现有方法 python中使用sorted()传参reverse=true 对汉字是否有效? Python3.7中reversed()函数出现“list_reverseiterator object at 0x02F0AC10&gt;”错误提示,请教“大家” 为什么注销不了QQ?这种的该怎么办?就是注销的时候,上面显示帐号有安全风险,, 销售技巧方法和礼貌用语有哪些? 14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来。例如,字 ... 销售专业术语 python怎么调换一组数的顺序我有一组数 电话营销经典用语? return reverse(s[1:] + s[0] 在python里是什么意思 谁知道电话营销的专业术语啊 用python语言实现一个多态函数d_reverse(data),支持将数字,字符串,列 ... 销售术语 销售巧妙用语 关于Python reserve的问题 推销用语(英语) 推销技巧和术语 推销名词解释 我申请了一个新QQ号码,上网总是提示我的号码有风险,要激活,怎么解决问题? 求会python 的大神 如何传递参数reverse=True到sorted()? 完美收官是什么意思?什么场合可以用? 圆满收宫和圆满收官的区别 完美收官在什么场合用? 完美收官是什么意思 ?在什么场合可以用? 完美收官下一句是什么? 完美收官什么场合用 节目收官就是以后都没有了吗?? 有完美收官这个成语吗? 完美收官,猜数字 完美收官下一句怎么说? 完美收官是什么意思t 收官还是收宫 QQ浏览器提示该网页包含违法或欺诈内容,已禁止访问。该如何解决? 关于蓝色多瑙河酒的相关资料 什么酒是蓝色的 这个蓝色的是什么酒 度数多少 一种蓝色的酒是什么酒、