Python中文
首页
教程
问答
标签
搜索
登录
注册
Python:递归返回None-valu
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试编写一个程序来找到快乐的数字: <a href="https://en.wikipedia.org/wiki/Happy_number" rel="nofollow noreferrer">more info here.</a> 这不是学校的作业,但我只是想练习我的python2.7。 基本上,递归是其中的一个重要部分,因为我必须保持每个数字的平方。 在我的代码中,我使用递归来继续运行它,我有一个基本情况,它可以工作,但是由于某些原因,即使我调用函数,也没有递归发生。 它只返回第一个数字的平方,这是一个bug测试,它返回None,然后停止运行。 怎么了?在</p> <pre><code>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) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>所有可能的执行分支必须<em>返回</em>某些内容,否则递归将无法工作。例如,这是错误的:</p> <pre><code>happyn(go1,0,0,0) </code></pre> <p>如果没有显式返回,则函数将返回<code>None</code>。因此,正确的方法是:</p> ^{pr2}$ <p>函数中的所有其他出口点也是如此。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何重塑数组、迭代列的所有行并将重塑后的数组分配给新列?Python/Pandas/Numpy
8 回答
如何重塑数组的形状?
4 回答
如何重塑文本数据以适应keras的LSTM模型
8 回答
如何重塑未对齐的数据集,并使用numpy丢弃剩余数据?
4 回答
如何重塑此数据以使用绘图
10 回答
如何重塑此数据帧?
4 回答
如何重塑此数据集以适应RNN
1 回答
如何重塑没有列的数组?
2 回答
如何重塑测试数据帧,使其维数与训练和预测工作中使用的维数相同?
1 回答
如何重塑系列以在StandardScaler中使用它
8 回答
如何重塑线性回归的数据
6 回答
如何重塑线性回归的数据?
7 回答
如何重塑表格?
3 回答
如何重塑要堆叠的重复宽数据帧?
8 回答
如何重塑输入以放入二维层?
5 回答
如何重塑输入神经网络的三通道数据集
1 回答
如何重塑这个numpy数组
3 回答
如何重塑这个numpy数组以排除“额外维度”?
4 回答
如何重塑这个numpy阵列?
3 回答
如何重塑这个数据帧
10 回答