它一直说:TypeError:append()只接受一个参数(给定0)

2024-05-13 13:59:19 发布

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

我正在尝试用python制作一个基于turtle/text的RPG(基本上是一个计算机化的d&d地下城主程序),让我的朋友、同学和老师为我的计算GCSE和代码留下深刻印象;它把房间、敌人和任何其他东西都画得很好,文本输入用python shell打印。它是这么说的:

File "E:\GCSE's\RPG No.1 Test code..py", line 22, 
in chest contents+=list.append(chosen_loot)
TypeError: append() takes exactly one argument (0 given)

但这段代码是关于:

def chest():
    contents=[]
    chosen_loot=[]
    for n in range(2):
        loot=["Chestplate", "Vambraces", "Chausses", "Sabaton", "Zweihänder"]
        chosen_loot+=random.choice(loot)
        contents+=list.append(chosen_loot)

请帮忙!我从晚上10点起就一直在做这件事!


Tags: 代码textincontentsrpglistchosenturtle
1条回答
网友
1楼 · 发布于 2024-05-13 13:59:19

你的语法完全错了。首先,chosen_loot+=random.choice(loot)添加一个list和一个字符串,该字符串通常不起作用,除非使用了扩展的赋值(+=),该赋值扩展了list,将每个字符作为单独的项包含在内。

>>> a = [1,2]
>>> a+= 'abc'
>>> a
[1, 2, 'a', 'b', 'c']

那一行应该是chosen_loot = random.choice(loot)。你甚至不需要两个list,所以我不知道那里发生了什么。

接下来,contents+=list.append(chosen_loot)完全不对。首先,您正在执行list.append,如果您正确调用它,并引用您感兴趣的list(在本例中为contents),这可能会起作用,但通常您希望执行类似contents.append(chosen_loot)的操作。接下来,您将在上面连接+=。你有一些潜在的有用代码,但你不能把它们混在一起,期望它们能工作。那行应该是contents.append(chosen_loot)

接下来,您将尝试从list中获取两个随机项。方法是使用random.sample

contents = random.sample(loot, 2)

最后,即使这样也没什么用,因为当函数结束时,所有这些都会被丢弃。你需要归还一些东西:

def chest():
    return random.sample(["Chestplate",
                          "Vambraces",
                          "Chausses",
                          "Sabaton",
                          "Zweihänder"], 2)

这将产生两个随机项目。

相关问题 更多 >