为什么函数不返回新值[Python]

时间:2017-07-11 02:46:33

标签: python

如果值可以被3整除,则练习题是返回输入值的立方体。否则返回false。

代码结构是可编译的,但它不返回多维数据集值。而是返回原始输入值。

a=raw_input("Enter a number")
number=int(a)

def cube(number):

    number=number**3
    print" The answer is %s" % number
    return number

def by_three(number):
    if number%3==0:
        return cube(number)
    else:
        return False

print" The answer is %s" % number

2 个答案:

答案 0 :(得分:2)

您需要在代码中调用函数by_three。为什么你没有得到你想要的结果是因为声明了函数,但从未调用过。下面提供了正确的代码:

a=raw_input("Enter a number ")
number=int(a)

def cube(number):   
    number=number**3
    #print" The answer is %s" % number
    return number

def by_three(number):
    if number%3==0:
        return cube(number)
    else:
        return False

# call the function `by_three` and pass number as a parameter
print" The answer is %s" % by_three(number)

答案 1 :(得分:1)

空白。缩进if声明。

def by_three(number):
    if number%3==0:
        return cube(number)
    else:
        return False

(编辑:来自Ryan的评论)

要修复运行时错误......您永远不会调用您定义的函数。这应该是你做的:

print "The answer is %s" % by_three(number)

...替代地

a=raw_input("Enter a number")
number=int(a)

if number%3==0:
    number = number**3
else:
    number = False

print "The answer is %s" % number