[Решено] как преобразовать int в строку без ошибки?
Решение:
Я изменил сравнение на:
if int(guess[i]) == number[i]:
насыщенная программа:
import random def generateNumbers(): numbers = []; i = 0 while i < 4: newNumber = random.randint(0, 9) if numbers.count(newNumber) == 0: numbers.append(newNumber) i += 1 return numbers def checkValidity(guess): if len(guess) != 4: print("Your guess does not contain four numbers.") return False if guess.isdigit() != True: print("Your guess is not a number.") return False i = 0 while i < 4: if guess.count(guess[i]) != 1: print("Your number contains a duplicate.") return False i += 1 return True def checkMatch(guess, number): bulls = 0 cows = 0 i = 0 while i < 4: if guess[i] == number[i]: bulls += 1 elif guess[i] in number: cows += 1 i += 1 print("Your number contains " + str(bulls) + " and " + str(cows) + " cows.") if bulls == 4: return True else: return False number = generateNumbers() print(number) guess = "" guesses = 0 while guess != "exit": print("Enter your guess or 'exit'.") guess = input("Guess: ").lower() if guess == "exit": break if checkValidity(guess): guesses += 1 if checkMatch(int(guess), number): print("Well done! You guessed the number in " + str(guesses) + " tries.")
Привет, я хочу сравнить два int вместе в следующем коде:
if guess[i] == number[i]:Однако я получаю следующую ошибку:
TypeError: 'int' object is not subscriptable
Что я уже пробовал:
- Преобразование переменной "guess" в int в разных местах кода.
- Вообще не конвертирую.