2016-05-30 27 views
5

Tamam, bu yüzden '' to * s. Ben çalışmak görünmüyor AtamaBir karakter dizisine göre karaktere gitme ve python ile boşlukları değiştirme

def characterSwitch(ch,ca1,ca2,start = 0, end = len(ch)): 
    while start < end: 
     if ch[start] == ca1: 
      ch[end] == ca2 
     start = start + 1 
sentence = "Ceci est une toute petite phrase." 
print characterSwitch(sentence, ' ', '*') 
print characterSwitch(sentence, ' ', '*', 8, 12) 
print characterSwitch(sentence, ' ', '*', 12) 
print characterSwitch(sentence, ' ', '*', end = 12) 

aşağıdaki len (ch) ile geldi ve ayrıca bu Bunu yapmanın en etkili yolu değildir eminim.

Ceci*est*une*toute*petite*phrase. 
Ceci est*une*toute petite phrase. 
Ceci est une*toute*petite*phrase. 
Ceci*est*une*toute petite phrase. 
+0

'ch' henüz tanımlı değil. Ve yerine bir iş gibi geliyor "Değiştirin" – Pythonista

+0

Ne çıktı elde edersiniz? Ne istiyorsun? –

+0

Soruyu aradığım çıktıyı ekledim, 8. karakterden 12. karaktere nasıl geçeceğimi anlayamadım. Kullandığımda tüm boşlukları değiştirdi – user3413472

cevap

4

Eğer replace() arıyorsunuz: Ben için çıkış amaçlayan ediyorum Aşağıdaki? Ayrıca, numaralı telefona bakın.

(12 karaktere 8. sadece yerine) ikinci şartı için

, bunu yapabilirsiniz:

sentence = sentence[8:12].replace(' ', '*') 
1

Eğer karakteri ile e karakter yapmak zorunda varsayarsak bu şekilde yapabilirsiniz:

sentence = "this is a sentence." 
replaced = "" 

for c in sentence: 
    if c == " ": 
     replaced += "*" 
    else: 
     replaced += c 

print replaced