#python
#python
Вопрос:
итак, я изучаю программирование (python, сообщество Visual studio) и пытаюсь написать игру на python, и лучший способ описать ее — mastermind (выбранная длина чисел генерируется случайным образом, вы угадываете, и она сообщает вам, есть ли правильные числа в правильной позиции, но не в какой позиции они находятсяв) кажется, что все остальное в этом работает до сих пор, кроме того факта, что, поскольку эта программа сможет выполнять бесконечную длину, я должен проверять эти числа, используя переменную, которая увеличивается на 1 каждый раз if guess[y]==randomnumber[y]:
, каждый раз, когда я запускаю это, я получаю сообщение об ошибке:»объект’int’не подписывается «. вот полный код:
length=int(input("what length do you want: "))
import random
if length==0:
length=int(input("what length do you want: "))
if length!=0:
x=0
while x!=length:
randomnumber=[int(random.randint(0,9))]
x=x 1
x=0
game_over=0
while game_over==0:
guess=int(input("your guess: "))
y=0
round_score=0
y=int(y)
while y!=length:
if guess[y]==randomnumber[y]:
round_score=round_score 1
y=y 1
if round_score==length:
game_over=1
Комментарии:
1.
guess
это anint
, а не alist
.2. Чего вы надеетесь достичь с
[y]
помощью inguess[y]
? Кроме того, что вы надеетесь сделать сy=int(y)
wheny
уже является целым числом? В общем, вы должны иметь возможность привязывать цель ко всему, что вы вводите в программе, но в этом случае вы, похоже, вводите код, который не имеет какой-либо очевидной цели.3. Что здесь происходит:
randomnumber=[int(random.randint(0,9))]
? По сути, вы создаете список с одним случайным числом пару раз (length
). Вы, вероятно, хотите собрать их вlist
длинуlength
.4. В названии вашего вопроса говорится о том, как нарезать целые числа, но «нарезка целых чисел» на самом деле не имеет смысла. Целые числа — это не то, что можно нарезать в Python. Это может помочь, если вы объясните, что вы имели в виду под нарезкой целых чисел.
5. Может быть, не по теме, но я думаю, вы имели в виду
while length==0:
вместоif length==0
, в строке 3, потому что вы хотите продолжать спрашивать, равна ли длина 0, а не только один раз
Ответ №1:
Вы хотите преобразовать предположение в список целых чисел.
Получить ввод в виде строки:
guess = input("your guess: ")
Последовательность символов (она же строка) в список int:
guess = [int(c) for c in guess]
Это можно было бы записать в одну строку, но я думаю, что так будет понятнее.