我可以使用变量来确定列表中的字符串吗?

2024-10-08 18:24:56 发布

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

当我试图使用输入的变量来确定列表中的某个字符串时,我正在浏览一些代码。我已经使用了大量的输入分隔,使它成为两个字符串,我看不出我的代码有什么问题

我试着在我的主项目中使用一段代码,但失败了

我尝试在我的主要项目中使用以下代码:

equipped = []
bag = ['foo', 'bar']
act = input()
if "Equip" or "equip" in act:
    inputPieces = act.split(' ')
    base = inputPieces[0]
    argument = inputPieces[1]
    slotnumber = int(argument) - 1
    item_equip = bag[slotnumber]
    equipped.append(item_equip)

当我试着输入equip 1时,它应该将'foo'添加到文件中,但是它发送了一个错误消息

argument = inputPieces[1]
IndexError: list index out of range

它应该接受我输入(1)的第二部分,并将相应的字符串从“bag”附加到“equired”。但是当我尝试这样做时,错误消息说(我认为)这个部分不存在,所以它不能获取索引


Tags: 项目字符串代码消息列表foo错误item
1条回答
网友
1楼 · 发布于 2024-10-08 18:24:56

您已经使用构成列表的空格(act.split(“”))拆分了数据。如果用户输入与用户输入之间有空格,则列表包含多个数据。如果用户输入只包含一个没有空格的单词,比如“equipefgfgh”,那么inputPieces[1]就不存在了。在这种情况下,你将得到问题中陈述的错误。所以你必须在进入前检查:

 if len(inputPieces) >1 

或者可以使用try/except:

equipped = []
bag = ['foo', 'bar']
act = input()
if "Equip" in act or "equip" in act:
    try:
        inputPieces = act.split(' ')
        base = inputPieces[0]
        argument = inputPieces[1]
        slotnumber = int(argument) - 1
        item_equip = bag[slotnumber]
        equipped.append(item_equip)
    except:
        print("error occured")

相关问题 更多 >

    热门问题