我在python中创建了一个在IDLE中运行的简单文档编写器系统。这是源代码:
def openn():
global n
if n==1:
print("[1] - " + title)
print("[2] - Exit")
option=raw_input()
if int(option)==1:
print(text)
print("type 'done' when done")
do=raw_input()
if do=='done':
run()
if do!='done':
run()
if n==0:
print("No Saved Documents")
def new():
print("Enter a title:")
global title
title=raw_input()
print(str(title) + ":")
global text
text=raw_input()
print("[1] - Save")
print("[2] - Trash")
global n
global save
save=input()
if save==1:
n=1
run()
if save==2:
n=0
run()
def run():
print("[1] - Open a saved document")
print("[2] - Create a new saved document")
global save
save=1
global choice
choice = input()
if choice==1:
openn()
if choice==2:
new()
run()
当我第一次在IDLE中运行程序并给出输入1表示我希望程序返回“No Saved Documents”时它返回以下错误:
File "/Users/tylerrutherford/Documents/Python Programs/Operating Systen Project/document_writer.py", line 5, in openn
if n==1:
NameError: global name 'n' is not defined
如何修复此错误? 提前谢谢!
答案 0 :(得分:1)
从查看代码开始,您永远不会initialized
变量n。
您需要先定义n。
global n
n = 1
我认为最好在function
之外定义变量,然后在global
内用function
引用变量。
n = 1
def open():
global n
归功于 @dshort :
您可以在函数中传递n以避免global
变量声明。