【发布时间】:2023-03-03 11:53:01
【问题描述】:
我有一个小问题,当我在列表中输入相同的数字时,我生成随机数到 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
>>>
我刚开始学习编码,所以如果你们能解释一下,我很乐意理解以供将来参考:)
【问题讨论】:
-
input()返回一个字符串,使用int()将其转换为整数,然后再与列表中的数字进行比较,如:p = int(p)。 -
input将返回一个字符串而不是整数。在比较之前,您需要转换一个或另一个,以便它们是相同的类型 -
还有更短的方法来实现这一点。了解
random.choices()和list.index()方法。 -
好的,非常感谢您在将其更改为 p = int(input('enter an integer number: ') 后的回答。再次感谢您:)