Я хотел проверить, есть ли вход в строке, а затем распечатать вывод - PullRequest
2 голосов
/ 29 сентября 2019

Я намеревался позволить программе проверить, совпадает ли ввод с каким-либо символом в строке, а затем распечатать результат, ввод от игрока и подчеркивание в правильных местах.Пока это мой тестовый код:

astring = "apple"
bstring = "_ " * 5
print(bstring)
my_input = input("enter a letter")

for i, n in enumerate(astring):
    if my_input == i:
        bstring[n] = my_input
    else:
        i = i + 1

print(bstring)

Однако распечатываются только подчеркивания.Кто-нибудь может мне помочь?

Ответы [ 3 ]

0 голосов
/ 29 сентября 2019

надеюсь, это поможет вам

astring='apple'

bstring=["_" for i in range(len(astring))]
print(bstring)
my_input=input('enter a letter')

for i,n in enumerate(astring):
        if my_input==n:
                bstring[i]=my_input
        else:
                i=i+1

print(*bstring)
0 голосов
/ 29 сентября 2019

В вашем цикле вы должны проверить, совпадает ли буква в вашем текущем индексе вашей строки с буквой в текущем индексе вашей входной строки, для этого вы можете использовать:

if i < len(my_input) and my_input[i] == n:

Кроме того, строки в Python являются неизменяемыми, поэтому вы не можете изменить их с помощью индекса.Вместо этого используйте массив _, чтобы вы могли изменить то, что находится в определенном индексе.Затем, в конце, соедините каждый элемент в вашем списке пробелом.

Наконец, нет необходимости увеличивать i, поскольку это выполняется для вас с помощью цикла for:

astring='apple'
bstring=['_']*len(astring)

print(bstring)

my_input = input('enter a letter')

for i,n in enumerate(astring):
    if i < len(my_input) and my_input[i] == n:
        bstring[i] = n

print(' '.join(bstring))
0 голосов
/ 29 сентября 2019
for i,n in enumerate(astring):

«i» - индекс, «n» - символ.У вас все наоборот, если «если».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...