Python参数和函数
我刚开始学习Python,一直在胡乱输入不同的代码供练习学习,我编写了以下代码:Python参数和函数,python,Python,我刚开始学习Python,一直在胡乱输入不同的代码供练习学习,我编写了以下代码: import math def lol(): print (math.cos(math.pi)) print ("I hope this works") def print_twice(bruce): print bruce print bruce print_twice(lol()) 当我运行它时,我的输出是: -1.0 I hope this works Non
import math
def lol():
print (math.cos(math.pi))
print ("I hope this works")
def print_twice(bruce):
print bruce
print bruce
print_twice(lol())
当我运行它时,我的输出是:
-1.0
I hope this works
None
None
为什么不打印函数lol()两次?您的代码
打印两次(lol())
是说执行lol()
并将其返回值传递到打印两次()
。由于没有为lol()
指定返回值,因此它返回None
。因此,lol()在执行时打印一次,并且print\u()中的print
语句都打印两次(
print传递的None
值)
这就是你想要的:
def lol():
print (math.cos(math.pi))
print ("I hope this works")
def print_twice(bruce):
bruce()
bruce()
print_twice(lol)
我们现在不是传递函数
lol()
,而是传递函数lol
,然后在print\u tweep()
中执行两次,您的代码print\u tweep(lol())
是说执行lol()
并将其返回值传递到print\u tweep()
。由于没有为lol()
指定返回值,因此它返回None
。因此,lol()在执行时打印一次,并且print\u()中的print
语句都打印两次(
print传递的None
值)
这就是你想要的:
def lol():
print (math.cos(math.pi))
print ("I hope this works")
def print_twice(bruce):
bruce()
bruce()
print_twice(lol)
我们现在不是传递返回值
lol()
,而是传递函数lol
,然后在print\u twitter()
中执行两次。您应该注意,打印与返回不同
当您两次调用
print\u(lol())
时,它将首先调用lol()
,它将打印-1.0
,并且我希望这可以工作并返回None
,然后它将继续调用print\u两次(None)
将调用print None
两次。您应该注意,打印与返回不同
当您两次调用print\u(lol())
时,它将首先调用lol()
,它将打印-1.0
,并且我希望这能起作用,并返回None
,然后它将继续调用print\u两次(None)
,这将调用print None
两次。您如何按预期运行:
def lol():
print "lol"
def run_twice(func):
func()
func()
run_twice(lol)
如何按预期运行:
def lol():
print "lol"
def run_twice(func):
func()
func()
run_twice(lol)
我怎样才能更改它,使它可以打印两次?而不是一个也不返回。这是因为函数在print_中第一次调用两次(lol())后就终止了吗?我如何更改它以使其打印两次?而不是一个也不返回。这是因为函数在print_中第一次调用两次(lol())后就终止了吗?我如何更改它以使其打印两次?而不是一个也不返回。这是因为函数在print_tweep(lol())中第一次调用时终止吗?它将打印两次,尝试执行print_tweep('foo')
,您只需确保其参数是字符串,在这种情况下,您可以更改lol
,使其返回一些内容def lol:返回'foo'
然后将'foo'打印两次(lol())
将打印两次。我如何更改它使其打印两次?而不是一个也不返回。这是因为函数在print_tweep(lol())中第一次调用时终止吗?它将打印两次,尝试执行print_tweep('foo')
,您只需确保其参数是字符串,在这种情况下,您可以更改lol
,使其返回一些内容def lol:返回'foo'
然后print_两次(lol())
将打印'foo'两次。