Python 从列表中打印整数

Python 从列表中打印整数,python,list,random,input,Python,List,Random,Input,我有一个小问题,当我在一个50人的列表中输入相同的数字时,在生成随机数后,它不会打印“找到匹配项”。它将始终向我发送“未找到匹配项”。你们能解释一下代码的错误吗 import random mylist=[] for i in range (50): x= random.randint(100,999) mylist.append(x) print(mylist) p = input('Enter an integer number: ') for i in range(len(m

我有一个小问题,当我在一个50人的列表中输入相同的数字时,在生成随机数后,它不会打印“找到匹配项”。它将始终向我发送“未找到匹配项”。你们能解释一下代码的错误吗

import random

mylist=[]

for i in range (50):
 x= random.randint(100,999)
 mylist.append(x)

print(mylist)

p = input('Enter an integer number: ')

for i in range(len(mylist)):
    if p == mylist[i]:
        print('Match found at position')
        break
else:
    print('no match found')
输出示例

[836, 569, 378, 788, 847, 584, 404, 159, 362, 271, 151, 100, 702, 414, 867, 213, 194, 553, 946, 930, 777, 143, 143, 879, 724, 752, 431, 416, 944, 509, 752, 211, 713, 951, 882, 836, 710, 998, 447, 892, 720, 210, 364, 768, 603, 456, 540, 727, 346, 153]
Enter an integer number: 836
no match found
>>> 

我刚开始学习编码,所以如果你们能解释一下,我很乐意理解以备将来参考:)

int()键入您的输入
然后打印匹配的索引

import random

mylist=[]

for i in range (50):
 x= random.randint(100,999)
 mylist.append(x)

print(mylist)

p = input('Enter an integer number: ')

for i in range(len(mylist)):
    if int(p) == mylist[i]:
        print('Match found at position ' + str(i))
        break
    else:
        print('no match found')

使用
int()键入您的输入
然后打印匹配的索引

import random

mylist=[]

for i in range (50):
 x= random.randint(100,999)
 mylist.append(x)

print(mylist)

p = input('Enter an integer number: ')

for i in range(len(mylist)):
    if int(p) == mylist[i]:
        print('Match found at position ' + str(i))
        break
    else:
        print('no match found')

除了更正注释中提到的类型转换之外,您甚至不需要循环来查找匹配项。在python中使用
中强大的
。您可以用以下内容替换整个搜索循环:

if int(p) in mylist:
    print('Match found at position')
else:
    print('no match found')
如果需要打印列表中
p
的索引,请使用以下命令:

try: 
  print('Match found at position ',mylist.index(int(p)))
except:
  print('no match found')
您还可以使用numpy软件包创建不带循环的随机整数列表:

import numpy as np
mylist = np.random.randint(100, high=999, size=50).tolist()
因此,您的整个代码如下所示:

import numpy as np

mylist = np.random.randint(100, high=999, size=50).tolist()
p = input('Enter an integer number: ')
if int(p) in mylist:
    print('Match found at position')
else:
    print('no match found')

除了更正注释中提到的类型转换之外,您甚至不需要循环来查找匹配项。在python中使用
中强大的
。您可以用以下内容替换整个搜索循环:

if int(p) in mylist:
    print('Match found at position')
else:
    print('no match found')
如果需要打印列表中
p
的索引,请使用以下命令:

try: 
  print('Match found at position ',mylist.index(int(p)))
except:
  print('no match found')
您还可以使用numpy软件包创建不带循环的随机整数列表:

import numpy as np
mylist = np.random.randint(100, high=999, size=50).tolist()
因此,您的整个代码如下所示:

import numpy as np

mylist = np.random.randint(100, high=999, size=50).tolist()
p = input('Enter an integer number: ')
if int(p) in mylist:
    print('Match found at position')
else:
    print('no match found')

input()
返回字符串,在与列表中的数字进行比较之前,使用
int()
将其转换为整数,如:
p=int(p)
input
将返回非整数的字符串。在比较之前,您需要转换一个或另一个,以便它们是相同的类型,并且有较短的方法来实现这一点。阅读
random.choices()
list.index()
方法。好的,非常感谢您在将其更改为p=int(输入('enter a integer number:')后给出的答案。再次感谢:)
input()
返回字符串,使用
int()
在与列表中的数字进行比较之前将其转换为整数,如:
p=int(p)
input
将返回一个字符串而不是整数。在比较之前,您需要转换一个或另一个,以便它们是相同的类型,并且有较短的方法来实现这一点。阅读有关
random.choices()
list.index()
方法的内容。好的,非常感谢您在将其更改为p=int(输入('enter a integer number:')后给出的答案。再次感谢:)