It is necessary to check whether 3 identical elements of the array go in a row. An error occurs in if item == value: because value is not a local variable. I tried to make it local, but then my algorithm did not work, which does not work in function

 packofCards = ['Черви','Черви','Черви'] value = packofCards[0] def shuffle(packofCards): counter = 0 for index, item in enumerate(packofCards): if item == value: value = item counter += 1 if counter >=3: return 0 else: return 'Нет трех идущих подряд карт одной масти' print(shuffle(packofCards)) 

    2 answers 2

    Global variables are not needed.

     def is_sequential(items): counter = 0 current = items[0] for item in items: if item == current: counter += 1 else: counter = 0 current = item if counter >= 3: return True return False packOfCards = ['Черви','Черви','Черви'] print(is_sequential(packOfCards)) 
       packofCards = ['Трефы', 'Черви', 'Черви', 'Черви'] # Если нужно найти последовательность из 3х карт любой масти. def shuffle(pack): counter = 0 for i in range(1, len(pack)): if pack[i] == pack[i - 1]: counter += 1 if counter == 2: return pack[i] else: counter = 0 return 'Нет трех идущих подряд карт одной масти' print(shuffle(packofCards)) # Если нужно найти последовательность карт определенной масти. sought_val = 'Черви' def shuffle(pack, val): counter = 0 for i in range(len(pack)): if pack[i] == val: counter += 1 if counter == 3: return True else: counter = 0 return False print(shuffle(packofCards, sought_val))