Python 如何修复此函数代码
我试图迭代三个函数,但出现以下错误:NameError:未定义全局名称“dash”。我该怎么修 代码如下:Python 如何修复此函数代码,python,python-3.x,Python,Python 3.x,我试图迭代三个函数,但出现以下错误:NameError:未定义全局名称“dash”。我该怎么修 代码如下: def draw(): name = input('Please type here: ').lower()#.split() if name == 'what draw': print('draw here') else: dash() draw() def paint(): name = input('Please ty
def draw():
name = input('Please type here: ').lower()#.split()
if name == 'what draw':
print('draw here')
else:
dash()
draw()
def paint():
name = input('Please type here: ').lower()#.split()
if name == 'what paint':
print('paint here')
else:
draw()
paint()
def erase():
name = input('Please type here: ').lower()#.split()
if name == 'what erase':
print('erase here')
else:
paint()
erase()
def dash():
name = input('Please type here: ').lower()#.split()
if name == 'what dash':
print('dash here')
else:
erase()
dash()
您正在尝试在其定义之前使用它
def paint():
...
def draw():
...
def dash():
...
def erase():
...
draw()
paint()
erase()
dash()
按照当前编写的代码:
dash()
;及# function definitions here
while True:
name = input('Please type here: ').lower()
if 'dash' in name:
dash()
# repeat for other functions
elif 'quit' in name:
break
else:
print("Don't know that name.")
查看发生错误的行号。它写在异常中。
但我认为你的问题可能在这里:
def draw():
name = input('Please type here: ').lower()#.split()
if name == 'what draw':
print('draw here')
else:
dash()
draw()
您调用draw(),但draw()将调用dash(),dash尚未定义,可能会重复错误消息已经告诉您的内容,
dash
未在您发布的代码中的任何位置定义。是否有更熟悉pyhthon的人可以评论为什么会将其标记为函数式编程
?我看不到高阶函数的任何用途,也看不到任何类型的元编程。关于错误…有没有办法,我可以要求修复这个问题?谢谢。您可以从定义dash
@wakamdr开始。您可以选择:1。删除对仪表板的调用
;或2。实际上,definedash
这很有效,但只使用draw()打印…是因为它是第一个名为?的。按顺序列出了draw()、paint()、erase()和dash()。如果我用paint()替换draw(),则调用paint,其余部分不迭代over@wakamdr你问过如何修复你所遇到的错误,如果你想让别人检查你的代码,这可不是个好地方。无论如何谢谢你!!