【发布时间】:2018-02-16 16:40:33
【问题描述】:
我想打印并返回一个值,但似乎找不到解决方法。 我现在有这个:
def collatz_number(n):
# If n is not a positive integer
if n<=0:
return "Only positive integers please"
# Even numbers
elif n % 2 == 0:
return n // 2
# If n is 1
elif n == 1:
return 1
# Odd number
elif n % 2 == 1:
return 3*n+1
我希望它像这样运行:
>>>a = collatz_number(5)
16
>>> print(a)
16
我的问题是我打印 16 两次,如果我在每个 if 语句下使用 print (然后代码将打印与 if 语句返回相同的数字),或者就像你看到的这段代码一样 - 我只在 print(a) 之后得到 16,但不是在 a = collatz_number(n) 之后。
我怎样才能使这个代码像我上面所说的那样起作用:让它打印并返回 n 的 collatz 数,这样它就可以像这样工作(如上所述):
>>> a = collatz_number(n)
16
>>> print(a)
16
很抱歉这个不好的表述
【问题讨论】:
-
最后一个条件过多,可以把elif改成else。