codecademy 6练习变得完美

时间:2017-07-21 16:08:36

标签: python

有人可以解释一下吗?

def cube(number):
    number = (number**3)
    return number

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

by_three(3)

哎呀,再试一次。 by_three(3)返回3而不是27

为什么这不会返回27

3 个答案:

答案 0 :(得分:0)

所以问题是在你的by_three函数中你要返回参数" number"传递给by_three函数,不返回立方体函数的结果。 你的代码:

%JRE%\lib\security

固定代码。

def by_three(number):

  if number % 3 == 0: 
   cube(number) 
  ## problem is right here you should return cube(number) not number
   return number 
  else: 
   return False

答案 1 :(得分:0)

检查你是不是将返回值引用到变量号。代码将是这样的。

def cube(number):
    number = (number**3)
    return number

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

print by_three(3)

希望你的问题得到解决

答案 2 :(得分:0)

例如,我们有两个功能:

def function1(num):
    return num * 3

和第二个功能

def function2(num):
    if num%2 == 0:
        print(num)
        function1(num)
    return num

如果您按预期致电function(1),它将返回1 如果您致电function(2),则会返回2而不是6。为什么?

让我们分析一下这个function2(2)

def function2(num):  # num = 2 
        if num%2 == 0: # yes, it meets the condition 
            print(num)
            function1(num) # it steps into function 1, this return num*3 == 6 however we do not know where it is saved (its address is unknown). 
        return num # this 'num' it is just the argument == 2