Я создаю распознаватель паттернов, и я столкнулся с ОЧЕНЬ странной ошибкой. Если шаблон распознан, он выводит ["x", "x", "2"]
, и я устанавливаю переменную, обработанную t
. Но когда я распечатать работал на последней строке он печатает ["x", "x", "x"]
Python variable действующий weird
(см часть кода с пометкой # _____________ ВАЖНОЕ __________ #)
import random
def check_pattern(pattern, rule):
for i, RULE in enumerate(pattern):
if RULE != "x":
if rule[i] != RULE:
return False
return True
if __name__ == "__main__":
numbers = [002,212,212,432,132,142,322,992,972,692,942,472]
#numbers = [a.replace("\n", "") for a in numbers]
print("Finding pattern in {}".format(numbers))
patterns = []
possible = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "x"]
found = False
pattern = ["x", "x", "x"]
working = []
worked = []
for i, rule in enumerate(pattern):
for attemptRule in possible:
testRule = pattern
testRule[i] = str(attemptRule)
works = True
for num in numbers:
numList = [a for a in str(num)]
if check_pattern(testRule, numList):
pass
#print("Pattern {} works with {}".format(t, numList))
else:
works = False
#print("Pattern {} doesnt work with {}".format(t, numList))
if works:
# ____________________ IMPORTANT ______________________ #
if testRule != ['x', 'x', 'x']:
print(testRule)
worked = testRule
# ____________________ IMPORTANT ______________________ #
working.append(testRule)
#print("Pattern {} works".format(working))
print(worked)
Спасибо.
В строке 31: numList = [a для a в num] ТипError: объект 'int' не является итерабельным –
Теперь я вызываю str() для чисел и меняю 1 на «1» и так далее. Обновление сообщения, спасибо за ответ, но я не получаю никаких ошибок – XCode
Мне трудно читать код, что он должен делать? Можете ли вы привести несколько примеров ввода и ожидаемого результата? – fafl