def Interface():
Number = input("Enter number: ")
Interface()
print(Number)
这是我的代码的一个小简化片段,它产生:
Traceback (most recent call last): File "C:/Users/Jack/Documents/Python/NumberToText.py", line 78, in print(Number) NameError: name 'Number' is not defined
我认为这是因为变量是在函数中定义的。
我该怎么做才能解决这个问题?
答案 0 :(得分:5)
这取决于你想做什么。
可能使Interface
函数返回Number
是最简单的解决方案
def interface():
number = input("Enter number: ")
return number
print(interface())
请参阅this SO QA有关python
中范围规则的主题注意:正如您所看到的,我已按照PEP-8指南
将函数名称和变量转换为小写答案 1 :(得分:1)
因为变量Number
仅属于函数Interface()
。您可以像这样使用return
:
def Interface():
number = int(input("Enter number: "))
# remember use int() function if you wish user enter a number
return(number)
print(Interface())
或使用global
就像这样:
def Interface():
global number
number = input("Enter number: ")
# remember use int() function if you wish user enter a number
Interface()
print(number)
只有在需要变量时才使用global
可以在任何地方使用,或者你需要函数返回其他东西。因为修改全局变量会破坏模块性。
Here是关于什么是全局变量的文档。