assignmen之前引用的局部变量“value”的UnboundLocalError

2024-09-22 20:29:05 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码可以运行,但当用户试图键入时,它总是会导致错误UnboundLocalError: local variable 'value' referenced before assignment。我去过很多网站,但似乎无法将我得到的解决方案应用到我的具体情况:

def letterbreak(luv):
    setluv=list(str(luv))
    for x in setluv:
        if x=='a':
            value=int(1)
        if x=='b':
            value=int(2)
        if x=='c':
            value=int(3)
        if x=='d':
            value=int(4)
        if x=='e':
            value=int(5)
        if x=='f':
            value=int(6)
        .......
        .......
        .......
        .......

        if x=='y':
            value=int(25)
        if x=='z':
            value=int(26)
        print(str(value))
    return

letterbreak(input())

如果条件有问题,请告诉我。在


Tags: 代码用户键入ifvaluelocal错误variable
2条回答

顺便说一句(注释太长),您的代码可以简化很多。例如,可以使用查找表,如:

import string
tmp = list(string.ascii_lowercase)
lookup = dict(zip(tmp, range(1, len(tmp)+1)))

def letterbreak(luv):
    setluv=list(str(luv))
    for x in setluv:
        print(str(lookup.get(x, "Value not defined")))
    return

如果没有条件执行,则不定义value。那么,如果x == '1',必须打印什么值?在

解决方案是在if之前定义一个默认值:

for x in setluv:
    value = -1

    if x=='a':
        value=int(1)
    # ... etc

    print(str(value))

相关问题 更多 >