有人可以解释一下吗?
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
?
答案 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