为什么我在def中定义“a”时没有定义它?

2024-09-28 11:38:09 发布

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

这是我的剧本

import random
import string

alphabet = "abcdefghijklmnopqrstuvwxyz"

#How many letters
def let_count():
    letters_count = -1
    while letters_count > 26 or letters_count < 0:
        letters_count = int(input("How many letters?(max 26): "))
    letters_count = 26 - letters_count
    make_letter_list(letters_count)

#Make list
def make_letter_list(letters_count):
    letters = list(map(chr, range(97, 123-letters_count)))
    print("\n"+", ".join(letters))
    main(letters)


#Make lists of elements in letters
def mloeil(i, vvv, three_nums):
    if vvv:
        av = True
        bv = True
        cv = True
        dv = True
        ev = True
        fv = True
        gv = True
        hv = True
        iv = True
        jv = True
        vvv = False
    if i == "a":
        if av:
            a = []
            av = False
        return a.append(three_nums)
    elif i == "b":
        if bv:
            b = []
            bv = False
        return b.append(three_nums)
    elif i == "c":
        if cv:
            c = []
            cv = False
        return c.append(three_nums)
    elif i == "d":
        if dv:
            d = []
            dv = False
        return d.append(three_nums)
    elif i == "e":
        if ev:
            e = []
            ev = False
        return e.append(three_nums)

def main(letters):
    vvv = True
    for i in letters:
        print("\n"+i+")")
        num_count = 1
        for y in range(3):
            three_nums = int(input("Number"+str(num_count)+":"))
            mloeil(i, vvv, three_nums)
            num_count += 1

    print(a)

let_count()

在“print(a)”的末尾,它只是说和错误:

NameError: name 'a' is not defined

为什么呢?我在这里定义了“a”:

if i == "a":
        if av:
            a = []
            av = False
        return a.append(three_nums)

有什么建议吗?我知道这有点乱,但我还在学习,我尝试了很多东西,但都没有成功。问题是“def mloeil”和“def main”。我试着从“mloeil”回来,只是回了信,但也没用。谢谢你的支持


Tags: falsetruereturnifdefcountlistthree
1条回答
网友
1楼 · 发布于 2024-09-28 11:38:09

a是在函数mloeil内定义的,因此只存在于该函数内;尝试在函数外部访问a将导致错误

如果希望a的值在函数外部可用,则mloeil需要return该值,然后需要使用该值或将其存储在某处

相关问题 更多 >

    热门问题