我搜索用户在用户输入的列表中输入的元素的代码始终显示"元素未找到",即使用户在输入的列表中输入了元素。什么是错误? 还有,我的break语法有问题吗?
x=eval(input("list : "))
x=list(x)
n=len(x)
i=0
ele=input("enter element to be searched : ")
for i in range(0,n):
if(x[i]==ele):
print("element found at index number ",i)
break
else:
print("element not found")
答案 0 :(得分:0)
存在类型不匹配。由于评估了列表,因此数字项不是字符串。但是,要搜索的元素是一个字符串。
在比较之前将元素转换为字符串可以解决此问题。
x=eval(input("list : "))
x=list(x)
ele=input("enter element to be searched : ")
i=0
for e in x:
if str(e) == ele:
print("element found at index number ",i)
break
else:
print("element not found")
i+=1
答案 1 :(得分:0)
正如@arewm正确指出的那样,类型不匹配,但这里还有一个替代解决方案,它具有从用户输入实现列表的简洁方法:
strInput=input("list : ")
x=strInput.split()
x=[int(a) for a in x]
n=len(x)
i=0
ele=input("enter element to be searched : ")
ele=int(ele)
for i in range(0,n):
if(x[i]==ele):
print("element found at index number ",i)
break
else:
print("element not found")
输出:
list : 1 2 3 4
enter element to be searched : 1
element found at index number 0
修改:此外,如果您希望element not found
只出现一次,这是一个简单的更改:
strInput=input("list : ")
x=strInput.split()
x=[int(a) for a in x]
n=len(x)
i=0
ele=input("enter element to be searched : ")
ele=int(ele)
for i in range(0,n):
if(x[i]==ele):
print("element found at index number ",i)
break
if(i==n-1):
print("element not found")
输出继电器:
list : 1 2 3 4 5 7 6 88 9
enter element to be searched : 5
element found at index number 4