Python脚本中的NameError
我正在学习《用Python做数学》一书中的Python脚本示例,我不断遇到一个NameError,它告诉我我的变量没有定义,在我看来,它好像已经定义了 我使用的是Python3.4,代码是Python脚本中的NameError,python,Python,我正在学习《用Python做数学》一书中的Python脚本示例,我不断遇到一个NameError,它告诉我我的变量没有定义,在我看来,它好像已经定义了 我使用的是Python3.4,代码是 ''' Gravitational Calculations ''' import matplotlib.pyplot as plt #Draw the graph def draw_graph(x,y): plt.plot(x,y,marker
'''
Gravitational Calculations
'''
import matplotlib.pyplot as plt
#Draw the graph
def draw_graph(x,y):
plt.plot(x,y,marker='o')
plt.xlabel('Distance (m)')
plt.ylabel('Force (N)')
plt.title("Gravitational force as a function of distance")
def generate_F_r():
#Generate values for r
r=range(100,1001,50)
#Empty list to store F values
F=[]
#G Constant
G=6.674*(10**-11)
#Two masses
m1=0.5
m2=1.5
#Calculate F and append it into the F-list
for dist in r:
force=G*m1*m2/(dist**2)
F.append(force)
#Call the Draw Plot Function
draw_graph(r,F)
if __name__=='__main__':
generate_F_r()
它给我的错误是:
名称错误名称“r”未定义
它不是在表示r=范围(1001,50)的行中定义的吗
为什么不以此为定义
我肯定我在做一些非常简单和愚蠢的事情,但我不知道这么简单的事情怎么会这么难
谢谢 函数中的代码在函数被调用之前不会执行。在尝试引用
r
之前,您不会调用generate\u Fr()
。即使您确实首先调用了该函数,r
仍然只是一个局部变量。您需要在函数的开头使用global r
将其设置为全局。def generate\u F\u r()中应该包含哪些代码:。因为按原样,错误是有效的r
仅存在于generate\u F\u r
方法中。从代码当前的结构来看,您试图在方法之外使用它。此外,要么缩进错误,要么在调用generate_F_r()之前使用了r