2015-07-06 2 views
-1

У меня есть два куба функций, который возвращает число кубиков и by_three, которое, если куб делится на 3, мне нужно вернуть куб, иначе вернуть false. вот что я до сих пор (ниже). Я продолжаю получать «Oops, попробуйте еще раз. By_three (3) вернул True вместо 27-дюймовой ошибки, некоторые, пожалуйста, помогите, если вы знаете, что я делаю неправильно, или, возможно, идиот!»., возвращающий функцию куба

def cube(number): 
    return number**3 
def by_three(number): 
    return number%3==0 
    if bythree(number): 
     return cube(number) 
    else: 
     return false 
+0

возвращаемое значение 'by_three' всегда' номер% 3 == 0 '. –

+2

В 'by_three' функция, вы' return'ing перед выполнением каких-либо проверок в вашем блоке 'if-else' –

+2

Вы ошиблись, форматируя свой отступ при публикации вопроса, или by_three пытается называть себя из недостижимого кода? – samgak

ответ

0

Ваш отступы повсюду, но это будет делать то, что вы хотите:

def cube(number): 
    return number**3 

def by_three(number): 
    return number%3==0 

def main(number): 
    return cube(number) if by_three(number) else False 

if by_three(number) это правда cube(number) будет называться и возвращается еще раз Ложные будут возвращены.

Ваш код недостижим после возврата или у вас есть вне функции, в которой возврат не будет работать. Существует также нет false в python это верхний регистр F `

0

Вам нужен третий метод.

def cube(number): 
    return number**3 

def by_three(number): 
    return number%3==0 

def whattodo(number): 
    if by_three(number): 
     return str(cube(number)) #We must return one type, so we return string for both false and number 
    else: 
     return "false" 

try: 
    print int(whattodo(input("Enter a number")) #We are trying to convert the string into an integer 

except ValueError: #What if it is not a number? (In this case, it will be a string whose value is "false" 
    print "Your number is not divisible by three. Screw you" 
0

Попробуйте это:

def cube(number): 
    return number**3 

def by_three(number): 
    if number % 3 == 0: 
     return cube(number) 
    else: 
     return False 
Смежные вопросы