Python 基于用户输入在数组中查找元素

Python 基于用户输入在数组中查找元素,python,python-3.x,list,Python,Python 3.x,List,大家好,python和一般编程新手 我试图根据用户输入在数组中查找元素 这就是我所做的 a =[31,41,59,26,41,58] input = input("Enter number : ") for i in range(1,len(a),1) : if input == a[i] : print(i) 问题是它没有打印出任何内容。 我做错了什么 输入返回字符串a包含整数 您的循环从1开始,因此它永远不会针对a[0](在本例中为31)进行测试 您不应该重新定义名称

大家好,python和一般编程新手 我试图根据用户输入在数组中查找元素 这就是我所做的

a =[31,41,59,26,41,58]
input = input("Enter number : ")
for i in range(1,len(a),1) :
    if input == a[i] :
       print(i)
问题是它没有打印出任何内容。
我做错了什么

输入
返回字符串<代码>a包含整数

您的循环从1开始,因此它永远不会针对
a[0]
(在本例中为31)进行测试


您不应该重新定义名称
input

请不要声明变量input不是一个好的做法,而空格在Python中非常重要

a =[31,41,59,26,41,58]
b = input("Enter number : ")
for i in range(1,len(a),1):
    if int(b) == a[i] :
        print(i)

我认为您需要检查列表中的一个值,因此您的输入必须是Int。但输入将其作为字符串。您需要将其转换为int。

input
返回一个字符串。要使它们成为整数,请将它们包装在
int

inp=int(input('enter :'))
for i in range(0,len(a)-1): 
    if inp==a[i]:
        print(i)
列表中的索引从0开始到len(列表)-1

与其使用
范围(0,len(a)-1)
不如使用
枚举

for idx,val in enumerate(a):
    if inp==val:
        print(idx)

要检查
inp
是否在
a
中,您可以这样做

>>> inp in a
True #if it exists or else False

您也可以使用
try except

try:
    print(a.index(inp))
except ValueError:
    print('Element not Found')

输入为您提供了一个str,但您正在比较一个INT列表。循环从1开始,但索引从0开始