处理python脚本中的变量范围

时间:2015-09-14 01:22:22

标签: python

我正在学习用Python编写代码。 我正在创建一个执行单位转换的程序,但是我一直坚持这个错误:

  

NameError:name' ini'未定义

以下是代码:

df.loc[df['Symbol'] == 'TSLA']

2 个答案:

答案 0 :(得分:2)

ini未在全局范围内声明,仅在函数内部声明(它在conversion_type()中使用,因此在那里隐式声明,并且它是variable_type_converter()的参数)。但由于它没有在全球范围内宣布,因此它不存在。如果您想在ini中设置conversion_type()的值,并且该值可以在其他位置使用,请在致电ini之前在某处声明conversion_type()的值。

This answer对Python的范围规则有很好的总结。

更新:正如MadWombat在评论中指出的那样,您的variable_type_converter()函数无法执行任何操作。它需要一个名为ini的参数,它将其转换为float并重新分配回ini,但它不返回值。因此,当variable_type_converter()函数退出时,该值将被丢弃,并且永远不会使用浮动转换。

答案 1 :(得分:1)

定义变量时,应使用a = "Distance"。您还应该使用first == "Distance"

检查转化类型 由于函数ini正在返回未存储的值,因此未定义

conversion_type(first)。尝试:

# get conversion type 
conversion_type_chosen = conversion_type(first)

# calculate value
converted_value = variable_type_convertor(conversion_type_chosen)

# print result
print "result: {}".format(converted_value)