首页 > 解决方案 > 从列表中拉取

问题描述

我的问题是关于让用户从列表中提取和项目。如果列表中的项目未从列表中拉出,我想告诉用户他不正确。所以我的代码如下所示:

Body_Type = ['Large', 'Medium', 'Small']

print('Create a Character-')

print('Body Type Choices: ' + str(Body_Type))
bt = input('Enter your Body Type: ')
while bt != Body_Type:
    if bt == Body_Type[0:]:
        print('Your Body Type is: ' + bt)

else:
        print('Invalid Body Type')

我想做的是让我的用户创建一个角色。这只是我第一个简单项目的第一部分。我想让他从列表中的一项中拉出来,分别是“大、中、小”。我希望它重复,直到用户选择三个之一。我尝试使用or,但似乎感觉杂乱无章,我必须分解列表并分配每个单独的变量。

提前致谢!

标签: pythonlist

解决方案


这里有几个错误,比如将字符串与列表进行比较,或者随机切片希望它能起作用。并且您的输入语句在循环之前创建一个无限循环的事实是因为您一次又一次地比较不同类型bt != Body_Type的 2 个变量(始终True与内容无关,bt因为左手是字符串,右手是列表) .

但是编写一些工作代码不应该那么复杂。

我将创建一个无限循环并仅在选项在列表中时才中断:

while True:
    bt = input('Enter your Body Type: ')
    if bt in Body_Type:
        print('Your Body Type is: ' + bt)
        break
    else:
        print('Invalid Body Type')

更简单,更清晰(如果失败则重复输入)。无限循环(始终为真条件)允许避免双重输入调用和测试。只需循环,输入字符串,如果匹配则从循环中中断。

您正在寻找的关键语句是bt in Body_Type测试字符串是否在列表中。


推荐阅读