Python 我试图得到一个序列号字符串,但得到一个错误,表示变量未定义
我得到一个错误,说变量没有定义。是因为它被视为局部变量,因此不能使用。任何见解都值得赞赏。谢谢 这就是错误。。 addedNum=pNum+fNum+sNum 名称错误:未定义名称“pNum”Python 我试图得到一个序列号字符串,但得到一个错误,表示变量未定义,python,indentation,Python,Indentation,我得到一个错误,说变量没有定义。是因为它被视为局部变量,因此不能使用。任何见解都值得赞赏。谢谢 这就是错误。。 addedNum=pNum+fNum+sNum 名称错误:未定义名称“pNum” def Print(): 打印(‘警察’+str(pNum)+‘火灾’+str(fNum)+‘卫生’+str(sNum)) def checkPrint(): addedNum=pNum+fNum+sNum 如果pNum%2==0: 如果addedNum==12: 打印() def printDept(
def Print():
打印(‘警察’+str(pNum)+‘火灾’+str(fNum)+‘卫生’+str(sNum))
def checkPrint():
addedNum=pNum+fNum+sNum
如果pNum%2==0:
如果addedNum==12:
打印()
def printDept():
pNum=0
fNum=0
sNum=0
pNum<8时:
支票打印()
pNum=pNum+1
当fNum<8时:
支票打印()
fNum=fNum+1
当sNum<8时:
支票打印()
sNum=sNum+1
印刷部()
当您在printDept()
函数中运行checkPrint()
时,在printDept()
中定义的变量(pNum
、fNum
和sNum
)不会被传递,因此在checkPrint()
的本地命名空间中找不到
要使用变量pNum
、fNum
和sNum
运行checkPrint()
,您需要将changePrint()
函数更改为需要三个参数,然后在运行printDept()
时传入这些参数:
def检查打印(pNum、fNum、sNum):
addedNum=pNum+fNum+sNum
如果pNum%2==0:
如果addedNum==12:
打印()
def printDept():
pNum=0
fNum=0
sNum=0
pNum<8时:
支票打印(pNum、fNum、sNum)
pNum=pNum+1
当fNum<8时:
支票打印(pNum、fNum、sNum)
fNum=fNum+1
当sNum<8时:
支票打印(pNum、fNum、sNum)
sNum=sNum+1
印刷部()
title显示“缩进错误”,但您的消息显示“变量未定义”。那么它是哪一个呢?变量有一个函数作用域pNum
是在printDept()
函数中声明的,但您正试图在checkPrint()
中使用它,而该函数未声明。这就是为什么你会出错。最佳情况下,必须将其作为参数传递到函数内部。定义函数时,必须在函数定义中添加要处理的变量<代码>def检查打印(pNum、fNum、sNum):
def Print():
print('Police ' + str(pNum) + 'Fire ' + str(fNum) + 'Sanitation ' + str(sNum))
def checkPrint():
addedNum = pNum + fNum + sNum
if pNum%2 == 0:
if addedNum == 12:
print()
def printDept():
pNum = 0
fNum = 0
sNum = 0
while pNum < 8:
checkPrint()
pNum = pNum + 1
while fNum < 8:
checkPrint()
fNum = fNum + 1
while sNum < 8:
checkPrint()
sNum = sNum + 1
printDept()