我正在尝试获取一串序列号,但出现错误,提示未定义变量

问题描述

我收到一条错误消息,说未定义变量。是因为它被认为是局部变量,因此无法使用。任何见解表示赞赏。谢谢

这是错误。 添加的数字= pNum + fNum + sNum NameError:名称“ pNum”未定义

Code

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()

解决方法

checkPrint()函数中运行printDept()时,在printDept()中定义的变量(pNumfNumsNum)没有传递,因此在checkPrint()本地的命名空间中找不到。

要使用变量checkPrint()pNumfNum运行sNum,需要将changePrint()函数更改为需要三个参数,然后传递printDept()运行期间输入这些参数:

def checkPrint(pNum,fNum,sNum):
    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,sNum)
        pNum = pNum + 1
        while fNum < 8:
            checkPrint(pNum,sNum)
            fNum = fNum + 1
            while sNum < 8:
                checkPrint(pNum,sNum)
                sNum = sNum + 1

printDept()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...