我正在学习用Python编写代码。 我正在创建一个执行单位转换的程序,但是我一直坚持这个错误:
NameError:name' ini'未定义
以下是代码:
df.loc[df['Symbol'] == 'TSLA']
答案 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)