这是我的代码:
def Area():
area = pi * radius * radius
pi = 3.14
radius = diameter * 2
def cost():
diameter = eval(input("diamater: "))
print ("Area is", area)
cost()
Run Code Online (Sandbox Code Playgroud)
它说区域没有定义,但我有一个名为area的变量!
area是函数中的局部变量,这意味着在该函数之外,您无法访问它.您应该阅读范围和功能.这里最好的解决方案是从函数返回值,并将参数传递给其他函数.
您似乎缺乏对代码评估方式的理解.代码按顺序依次执行,一个接一个.变量只能在定义后才能使用.在Area(),您尝试使用它们时定义变量.这没有意义.
另请注意,这eval()是从字符串中获取数字的一种不好的方法(它很慢,不是为此目的设计的,并允许任意代码执行),int()而是使用.
另请注意,PEP-8建议保留CapWords类,并使用lowercase_with_underscores函数名,所以Area()应该是area().这有助于保持代码的一致性和可读性.