вывести целое число из списка random python - PullRequest
1 голос
/ 13 июля 2020

У меня небольшая проблема, когда после того, как я сгенерирую случайное число в список из 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
>>> 

Я только начал изучать кодирование, поэтому, если вы, ребята, можете объяснить это, я был бы рад понять для дальнейшего использования :)

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Помимо исправления приведенного в комментариях типа, вам даже не нужно oop, чтобы найти совпадение. Используйте мощный in в python. Вы можете заменить весь поиск l oop на это:

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 для создания списка случайных целых чисел без l oop:

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')
0 голосов
/ 13 июля 2020

введите тип вашего ввода с помощью 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...