2013-08-02 106 views
4

我只是在学Codeacademy编程。我有一个任务,但不知道我做错了什么。(初学者)Python函数Codeacademy

首先我需要定义一个返回值的立方体的函数。然后我应该定义第二个函数来检查一个数是否可​​以被3整除。如果是我需要返回它,否则我需要返回False

继承人的代码:

def cube(c): 
    return c**3 

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

回答

8

你是不是捕捉功能cube的返回值。做b = cube(b)。或者更好的是,做return cube(b)

def cube(c): 
    return c**3 

def by_three(b): 
    if b % 3 == 0: 
     b = cube(b) 
     return b # Or simply return cube(b) and remove `b = cube(b)` 
    else: 
     return False 

当调用cube功能与参数b,则返回传递的参数的立方体,你需要将其存储在一个变量,并返回给用户,在当前的代码,你忽略返回的值。

+0

谢谢!那就做了诡计,不好意思记住总是将新值存储在一个变量中 – LtC

+0

@LtC:不需要那样做。只要'返回多维数据集(b)'本来可以工作,也许可读性更强一点。很高兴我虽然有帮助。 :) –

2

我想这个答案也可能工作:

def cube(b,c): 
     b = c ** 3 
     if b % 3 == 0: 
      return b 
     else: 
      return False 
     return b 

我知道这可能是有点多余,但我认为这可能是做你想要做什么的另一种方式。我认为什么Sukrit更简单。

0

我已经完成了Codecdemy,这是我的代码。

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

这是我刚刚开发一个轻量级的解决方案,应该工作:)

def cube(number): 
    return number**3 

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

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

尝试调用每个相同的字母。而不是使用'c'和'b',只需使用'c'

def cube(c): 
    return c**3 
def by_three(c): 
    if c % 3 ==0: 
     return cube(c) 
    else: 
     return False 
+0

更改变量名称不是解决方案,它是在cube前面添加“return”的事实,因此您要返回cube的返回值。 OP的代码返回了一个未修改的变量'b' – Nick

+0

最后,我不相信这提供了def by_three的正确解决方案,它应该只返回var,而不是调用函数。 – Nick