我是python新手,我的代码有问题..所以我要做的是询问一些随机的名字,程序应该会告诉你一个名字是否在列表中
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发布于 2018-09-02 04:13:20
正确的代码将遍历列表中的所有项,如果有一个匹配项从列表中分离出来,但只有在没有匹配项的情况下,才会得出没有找到它的结论(因此该部分将退出循环),如下所示:
for y in names:
if x == y:
print("{} is in the list".format(x))
break
else:
print("it's not in the list")当然,完全不需要循环也可以做到:
if x in names:
print("{} is in the list".format(x))
else:
print("it's not in the list")发布于 2018-09-02 04:10:56
因为您只检查列表的第一项,然后中断。
尝试删除break。
发布于 2018-09-02 04:11:30
您正在遍历列表,进行比较,然后在处理完第一个项目后立即break退出循环。删除break。
除此之外,您的问题的解决方案是使用if item in my_list:而不是for循环的废话。
或者,您可以像这样使用for: else::
for y in names:
if x == y:
print("yes it is in there")
break
else:
print("no it is not")您将看到else:附加到for循环本身,而不是if。else正在检查是否没有break。Break导致循环提前退出。
https://stackoverflow.com/questions/52131774
复制相似问题