Python 当函数作为参数传递时,如何知道将参数放在何处?
为什么当我将函数Python 当函数作为参数传递时,如何知道将参数放在何处?,python,function,probability,Python,Function,Probability,为什么当我将函数rollDie()传递给checkPascal(numTrials,roll)时会出现语义错误,但当我传递它的名称,然后将参数放在变量后面时,它会按预期工作?(请看一下代码)。我试着玩弄它,也在寻找,但我似乎无法正确地用词来找到答案 这将是非常感谢,因为我似乎无法理解它。这不是什么大问题,这个问题甚至不是课堂作业的一部分。在我的开放式MITx课程中,我们正在学习蒙特卡罗方法,我随机发现了这一点。我不知道帕伦夫妇为什么会在那里。我想他们应该在def管路中。我正在参加一个以前录制的免
rollDie()
传递给checkPascal(numTrials,roll)
时会出现语义错误,但当我传递它的名称,然后将参数放在变量后面时,它会按预期工作?(请看一下代码)。我试着玩弄它,也在寻找,但我似乎无法正确地用词来找到答案
这将是非常感谢,因为我似乎无法理解它。这不是什么大问题,这个问题甚至不是课堂作业的一部分。在我的开放式MITx课程中,我们正在学习蒙特卡罗方法,我随机发现了这一点。我不知道帕伦夫妇为什么会在那里。我想他们应该在def管路中。我正在参加一个以前录制的免费在线课程,所以我没有可以告诉我的讲师。谢谢
import random
def rollDie():
"""returns a random int between 1 and 6"""
return random.choice([1,2,3,4,5,6])
def checkPascal(numTrials, roll):
yes = 0.0
for i in range(numTrials):
for j in range(24):
d1 = roll #correct line would be d1 = roll()
d2 = roll #d2 = roll()
if d1 == 6 and d2 == 6:
yes += 1
break
print 'Probability of losing =', 1.0 - yes/numTrials
checkPascal(10000, rollDie()) #incorrect code
#correct code would be checkPascal(10000, rollDie)
据我所知,“roll”只是一个变量,变量不能有参数,至少我是这么认为的。从直觉上看,这似乎是错误的。这是因为它是一种弱类型语言吗?我很好奇。谢谢。只传递名称
rollDie
传递函数rollDie
。这就是为什么将paren放在roll
后面的原因,再往下一步,您将调用roll
变量引用的函数
传递rollDie()
对该函数求值,并返回random.choice([1,2,3,4,5,6])
(在这种情况下,roll
是一个整数)
尝试:
查看差异。仅传递名称
rollDie
即可传递函数。这就是为什么将paren放在roll
后面的原因,再往下一步,您将调用roll
变量引用的函数
传递rollDie()
对该函数求值,并返回random.choice([1,2,3,4,5,6])
(在这种情况下,roll
是一个整数)
尝试:
查看差异。
rollDie()
是一个数字,rollDie
是一个函数。Python是强类型的。强/弱类型与静态/动态类型无关。rollDie()
是一个数字,rollDie
是一个函数。Python是强类型的。强/弱类型与静态/动态类型无关。
print rollDie
print rollDie()