2016-04-08 2 views
0

Как написать программу, которая говорит, что строка «IIXIIXIIXIIX» позволит пользователю ввести подстроку «x», которую они хотят заменить другой строкой?пользователь выбирает подстроку в python

Таким образом, если пользователь вводит 1, это будет первый х и т. Д. По сути, как я могу связать ввод пользователя с строкой? До сих пор я

string = 'IIXIIXIIXIIX' 
substring = 'X' 
ss = input("Which substring would you like to replace: ") 
if ss == '1': 
    string = string.replace('X', 'Y') 
    print(string) 

это просто заменяет все «X» с «Y», но я ищу, чтобы заменить индивидуальный «X» на основании пользовательского ввода. Как я могу это сделать?

+0

У меня есть «попытка» сделать это с помощью string.find и string.index, но я не знаю, как сделать вход пользователя связан с позицией индекса подстроки – discord1

+0

Является ли фактический формат вашей строки похожим на 'IIXIIXIIXIIX 'или это просто пример случайных букв с x inbetween? – Keatinge

+1

Одна из идей заключается в том, чтобы разбить строку на 'X', а затем сшить' join', заменив только один из них в соответствии с вашим индексом. – roadrunner66

ответ

0

Определенно не самый изящный, но это похоже на работу:

string1 = 'IIXIIXIIXIIX' 
substring = 'X' 
replacement='B' 
ss = input("Which substring would you like to replace: ") 
list1= string1.split(substring) 
print substring.join(list1[:ss])+replacement+substring.join(list1[ss:]) 

Выход:

Which substring would you like to replace: 3 
IIXIIXIIBIIX 

Вы все еще нужно правильно обработать крайние случаи, как положение 0 и проходя мимо числа вхождения подстроки.

+0

Выглядит хорошо, спасибо. Не могли бы вы объяснить мне, что такое реплика? Я никогда не видел этого раньше, и Google не помог мне. – discord1

+0

Это просто переменная, содержащая букву, которую вы хотите заменить x, в своем примере буква B – Keatinge

+0

Хорошая точка, я имел в виду переменную 'replacement', но' repl' имеет другие значения, не должен был ее использовать. Починю. – roadrunner66

Смежные вопросы