擅长:python、mysql、java
<ol>
<li><p>您没有返回递归调用的结果,即<code>return happyn(go1, 0, 0, 0)</code>。在Python中,没有<code>return</code>语句的任何函数都隐式返回<code>None</code>。</p></li>
<li><p>这并不是一个使用递归的好地方;一个简单的<code>while</code>循环更适合。在</p>
<pre><code>def sum_sq(i):
total = 0
while i:
total += (i % 10) ** 2
i //= 10
return total
def is_happy(i):
while i >= 10:
i = sum_sq(i)
return i in (1, 7)
def main():
i = int(raw_input("Please enter a positive integer: "))
if is_happy(i):
print("{} is a happy number.".format(i))
else:
print("{} is an unhappy number.".format(i))
if __name__=="__main__":
main()
</code></pre></li>
</ol>