附加时未定义名称

2024-09-29 00:15:51 发布

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

我有一个任务需要我从列表中打印' a xxx yy '(包括空格) v_niz(['', 'a', '', '', '', 'x', 'x', 'x', '', 'y', 'y', '', ''])。到目前为止,我的代码是:

def v_niz(plosca):
    b = []
    for e in plosca:
        if e == "":
            b.append("")
        if e == 'a' :
            b.append(a)
        if e == 'x':
            b.append(x)
        if e == 'y':
            b.append(y)
    return b

但是当我试图运行程序时,它说名称'a'没有被定义。在


Tags: 代码in程序名称列表forreturnif
1条回答
网友
1楼 · 发布于 2024-09-29 00:15:51

首先,如果您从b = []开始,您将创建另一个列表。如果要创建字符串,则应具有:

b = ""

要附加到它的末尾,可以使用以下语法:

^{pr2}$

至于你方法的逻辑。你没有附加你认为你在附加的东西。例如:

b.append(a)

尝试添加一些变量a到列表的末尾b。您似乎想附加字符或字符串'a'

# for a list use
b.append('a')
# for a string use:
b += "a"

xy也一样,你需要在它们周围加上引号:'x'和{}。此外,您不会为以下对象添加空间:

b.append("")

实际上,您需要将空格放入字符串中,否则您只需在b的末尾添加一个空字符串,b基本上没有变化。你应该试试:

# for a list use
b.append(" ")
# for a string use:
b += " "

考虑到所有这些更改,代码的大致框架应该更像:

def v_niz(plosca):
    b = ""
    for e in plosca:
        if e == "":
            b += " "
        if e == 'a' :
            b += 'a'
        # ...
    return b

相关问题 更多 >