Skip to main content
 首页 » 编程设计

Python:递归返回无值

2025年05月04日25小虾米

<分区>

我正在尝试编写一个程序来找到快乐的数字: more info here. 这不是学校作业,但我只是想练习我的 Python 2.7。 基本上,递归是其中的重要部分,因为我必须保持对每个数字的平方。 在我的代码中,我使用递归来继续运行它,我有一个基本情况,并且它有效,但由于某种原因,即使我调用了该函数,也没有发生递归。 它只返回第一个数字的数字方 block ,这是一个错误测试,它返回无,然后停止运行。 有什么问题?

num = raw_input('Pick a positive integer that you want to check for a happy number') 
def happyn(number,second,third,fourth): 
  if len(number) == 2: 
    go = int(number[0])**2 + int(number[1])**2 
  elif len(number) == 3: 
    go = int(number[0])**2 + int(number[1])**2 + int(number[2])**2 
  elif len(number) == 4: 
    go = int(number[0])**2 + int(number[1])**2 + int(number[2])**2 +    int(number[2]**2) 
 
  if len(number) == 1 and int(number) == 1 or int(number) == 7: 
    return True 
  elif len(number) == 1: 
    return False 
  else: 
    print go 
    go = str(go) 
    go1 = go[0] 
    print go1 
    if len(go) == 1: 
      go1 = go[0] 
      happyn(go1,0,0,0) 
    elif len(go) == 2: 
      go1 = go[0] 
      go2 = go[1] 
      happyn(go1,go2,0,0) 
    elif len(go) == 3: 
      go1 = go[0] 
      go2 = go[1] 
      go3 = go[2] 
      happyn(go1,go2,go3,0) 
    elif len(go) == 4: 
      go1 = go[0] 
      go2 = go[1] 
      go3 = go[2] 
      go4 = go[4] 
      happyn(go1,go2,go3,go4) 
 
 
print happyn(num,0,0,0)