Pytanie praktyczne polega na zwróceniu kostki wartości wejściowej, jeśli wartość jest podzielna przez 3. W przeciwnym razie zwróć false.
Struktura kodu jest kompilowalna, ale nie zwraca wartości kostki. Zamiast tego zwraca oryginalną wartość wejściową.
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
Odpowiedzi:
1 dla odpowiedzi № 1Biała przestrzeń. Wcięcie twojego if
komunikat.
def by_three(number):
if number%3==0:
return cube(number)
else:
return False
(edycja: z komentarza Ryana)
Aby naprawić błąd środowiska wykonawczego ... nigdy nie wywołujesz zdefiniowanych funkcji. Powinno to zrobić:
print "The answer is %s" % by_three(number)
Alternatywnie...
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
2 dla odpowiedzi nr 2
Musisz zadzwonić do funkcji by_three
w kodzie. Dlaczego nie uzyskałeś pożądanego rezultatu, ponieważ funkcja została zadeklarowana, ale nigdy nie została wywołana. Prawidłowy kod podano poniżej:
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)