使用python 3:我有三个函数:montePi,isInCircle和main。 我需要montePi调用isInCircle。该函数将起作用,它只是说没有定义isInCircle。我该如何定义它?
import random
import math
def montePi(numDarts):
inCircle = 0
def isInCircle(x, y, r):
r = 1
d = math.sqrt(x**2 + y**2)
if d <= r:
return True
else:
return False
for i in range(numDarts):
x = random.random()
y = random.random()
d = math.sqrt(x**2 + y**2)
if d <= 1:
inCircle = inCircle +1
pi = inCircle / numDarts * 4
return pi
def main():
print(montePi(100))
print(montePi(1000))
print(montePi(10000))
print(montePi(100000))
main()
答案 0 :(得分:2)
因为isInCircle
中定义了函数montePi
,所以可以在montePi
内调用它,但不能在本地调用其他函数。如果您在isInCircle
之外定义montePi
,那么您就可以从main
调用它。
不确定你在这里尝试编程的是什么,但this question似乎有可能帮助你在这里确定你想要的东西。 Here是一个涵盖范围如何工作的问题。
如果您需要从isInCircle
或main
之外拨打main
,那么这就应该如何格式化;
import random
import math
def isInCircle(x, y, r):
r = 1
d = math.sqrt(x**2 + y**2)
if d <= r:
return True
else:
return False
def montePi(numDarts):
inCircle = 0
for i in range(numDarts):
x = random.random()
y = random.random()
d = math.sqrt(x**2 + y**2)
if d <= 1:
inCircle = inCircle +1
pi = inCircle / numDarts * 4
return pi
def main():
print(montePi(100))
print(montePi(1000))
print(montePi(10000))
print(montePi(100000))
main()