2016-05-30 21 views
5

Được rồi vì vậy tôi phải chuyển '' sang * s. Tôi đã đưa ra các điều sau đâyDi chuyển ký tự theo ký tự trong chuỗi và hoán đổi khoảng trắng với python

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) 

Gán len (ch) dường như không hoạt động và tôi khá chắc chắn đây không phải là cách hiệu quả nhất để thực hiện việc này. Sau đây là kết quả tôi đang hướng đến:

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' chưa được xác định. Và âm thanh như một công việc cho 'thay thế ' – Pythonista

+0

Bạn nhận được kết quả gì? Bạn muốn gì? –

+0

Tôi đã thêm đầu ra mà tôi đang tìm kiếm cho câu hỏi, tôi không thể tìm ra cách thay thế từ ký tự thứ 8 đến ký tự thứ 12. Khi tôi sử dụng nó nó chuyển tất cả các không gian – user3413472

Trả lời

4

Bạn đang tìm kiếm replace()?

sentence = "Ceci est une toute petite phrase." 
sentence = sentence.replace(' ', '*') 
print sentence 
# Ceci*sest*sune*stoute*spetite*sphrase. 

Xem thêm a demo on ideone.com ngoài ra.

Đối với yêu cầu thứ hai của bạn (để thay thế chỉ từ 8 đến nhân vật 12), bạn có thể làm:

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

Giả sử bạn đã làm điều đó từng ký tự bạn thể làm điều đó theo cách này:

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

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

print replaced 
Các vấn đề liên quan