#python
Вопрос:
Это просто тест для другого сценария. У меня есть этот код, который проверяет, существует ли число в файле пользователей, значение функции проверки, если оно есть, то оно выводит значение. Есть проблема с check
функцией, если я добавляю значение, скажем 2
, в примере файла, и чтобы проверить, существует ли оно в check(2)
файле, он печатает «да», поэтому, когда я добавляю другое значение, например 21, оно все еще совпадает 2
и печатает «да». Я использовал регакс, но это не помогло
listNum = list(range(1, 101))
import re
def check(z):
with open('users.txt') as f:
file_content= f.read()
for num in listNum:
array = re.findall(r'[0-9] ', str(num))
if str(z) in file_content:
result = print("yes")
return str(z)
check(1)
Комментарии:
1. В чем смысл
array
, если вы создадите его, а затем ничего с ним не сделаете.2. @khelwood ах, извините за это, я отредактировал это так, но это ничего не печатает
if str(array) in file_content:
3. если часть повторяется 100 раз ?
4. @pippo1980 Проверяется значение в файле пользователей. То, что соответствует номерам в файле пользователей, будет напечатано
Ответ №1:
Ты слишком все усложняешь. Если предположить users.txt
, что файл содержит только целые числа, каждое в отдельной строке, то следующий код выводит «да», если в файле присутствует номер теста. В противном случае ничего не печатается. Я не уверен, почему ваша функция возвращает значение, когда это значение не используется.
def check(z):
# z is the number you are checking the file for
with open('users.txt') as f:
# Remove the newline from each line in the file and convert the result into an integer
file_content = [int(line.strip('n')) for line in f.readlines()]
# Does the number you're checking for exist in the list of numbers from the file?
if z in file_content:
print('yes')
check(1)
Комментарии:
1. Братан!! Ты не представляешь, сколько времени я потратил на это, ты спас мне жизнь. Спасибо!!!