2016-04-08 16 views
0

'IIXIIXIIXIIX' dizesi için kullanıcının hangi dizgeyi 'x' yerine başka bir dizeyle değiştirmek istediğini belirten bir program nasıl yazarım?kullanıcı, python'da alt dizeyi seçer

Yani kullanıcı 1 girerse, ilk x olur. Temelde kullanıcı girdisini dize konumuna nasıl bağlarım? Şimdiye kadar bu basitçe 'Y' ile TÜM 'X' yerini

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

var, ama yerine arıyorum bireysel 'X' kullanıcı girişi dayalı. Bunu nasıl yapabilirim?

+0

string.find ve string.index ile bunu yapmak için "denedim" ancak kullanıcı girdisinin alt dizinin dizin konumuna nasıl bağlanacağını bilmiyorum – discord1

+0

Dizenin gerçek biçimi 'IIXIIXIIXIIX gibi görünecek mi? Yoksa bu x'in arasındaki rastgele harfler için bir örnek mi? – Keatinge

+1

Tek bir fikir, dizgiyi 'X' üzerinde bölmek, daha sonra dizininize göre bunlardan sadece birini değiştirerek 'birleştirme' ile birlikte dikiş yapmak olabilir. – roadrunner66

cevap

0
Kesinlikle

değil en şık, ama bu iş gibi görünüyor:

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:]) 

Çıktı:

Hala düzgün pozisyon 0 ve sayıyı geçen gidecek gibi sınır durumları tedavi etmek gerekiyordu
Which substring would you like to replace: 3 
IIXIIXIIBIIX 

alt dizenin oluşumları.

+0

İyi görünüyor, teşekkürler. Bana hangi repl olduğunu açıklar mısınız? Bunu daha önce hiç görmedim ve Google bana yardım etmedi. – discord1

+0

sadece, x harfi ile değiştirmek istediğiniz harfi içeren değişkenin, örneğindeki B – Keatinge

+0

İyi nokta, "değiştirme" değişkenini kastediyorum, fakat "repl" nin başka anlamları vardır, bunu kullanmamalıydı. Düzeltecek. – roadrunner66