Как ответили другие ответы, ошибка содержится в предложении return, где она должна быть удалена (поскольку она ограничивает выполнение), а также в необходимости приведения второго ввода к str для итерации и сравнения. Тем не менее, предложение input уже возвращает строку, поэтому вы можете либо привести первый вход к str, либо преобразовать каждое значение второго входного значения в int при сравнении. Кроме того, если вы хотите сравнить каждую цепочку чисел по символам (от первого до первого и т. Д.), Логика вашей программы неверна (она сравнивает каждый элемент второй цепочки только с первым значением первогослучайная цепь!).
Вот код с оператором печати первой цепочки для отладки.
import random
def mastermind():
#asking for length
length=int(input("chain length of 2 to 9: "))
#generating random chain of 2 to 9 numbers according to user's demand:
chain=[]
for number in range(length+1):
chain_nr=random.randint(1,9)
chain.append(chain_nr)
print(chain)
#guessed chain
guessed_chain = input("guessed chain: ")
guessed_count = 0
for i, nr in enumerate(guessed_chain):
if int(nr) in chain and int(nr) == chain[i]:
guessed_count +=1
print(f'"you\'ve guessed" {guessed_count}"numbers of the chain"')
else:
print("you haven't guessed any number")
mastermind()
РЕДАКТИРОВАТЬ: вот более питонский способ построения случайной цепочки целых чисел, используяпонимание списка.
chain=[random.randint(1,9) for i in range(length+1)]