首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -我无法从列表中获取超出第一个名称的名称

Python -我无法从列表中获取超出第一个名称的名称
EN

Stack Overflow用户
提问于 2018-09-02 04:06:29
回答 5查看 36关注 0票数 1

我是python新手,我的代码有问题..所以我要做的是询问一些随机的名字,程序应该会告诉你一个名字是否在列表中

代码语言:javascript
复制
names = ["Demi", "Siru", "Datte", "Sony", "Jami", "Windy", "Paavo", "Roosa"]
x = input('Give a name: ')
for y in names:
    if(x==y):
        print( x + " is in a list" )
        break
    elif(y!=x):
        print("it's not in a list")
        break
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-09-02 04:13:20

正确的代码将遍历列表中的所有项,如果有一个匹配项从列表中分离出来,但只有在没有匹配项的情况下,才会得出没有找到它的结论(因此该部分将退出循环),如下所示:

代码语言:javascript
复制
for y in names:
    if x == y:
        print("{} is in the list".format(x))
        break
else:
    print("it's not in the list")

当然,完全不需要循环也可以做到:

代码语言:javascript
复制
if x in names:
    print("{} is in the list".format(x))
else:
    print("it's not in the list")
票数 3
EN

Stack Overflow用户

发布于 2018-09-02 04:10:56

因为您只检查列表的第一项,然后中断。

尝试删除break

票数 0
EN

Stack Overflow用户

发布于 2018-09-02 04:11:30

您正在遍历列表,进行比较,然后在处理完第一个项目后立即break退出循环。删除break

除此之外,您的问题的解决方案是使用if item in my_list:而不是for循环的废话。

或者,您可以像这样使用for: else:

代码语言:javascript
复制
for y in names:
    if x == y:
        print("yes it is in there")
        break
else:
    print("no it is not")

您将看到else:附加到for循环本身,而不是ifelse正在检查是否没有break。Break导致循环提前退出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52131774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档