Karakter buluncaya kadar indisi arttırıp iterable’da arama yapıyor. Bulunca konumunu kaydedip kelime_baslangic’a atıyor ve bir sonraki döngüye geçiyor.
Sonraki döngüde space oluncaya dek kelime_boyutu arttırılıyor. kelime_baslangic:kelime_baslangic+kelime_boyutu olacak şekilde kelime ekleniyor.
metin = input("Metin: ") + " "
kelimeler = []
indis = 0
kelime_baslangic = 0
kelime_indis = 0
while indis < len(metin) - 1:
if " " not in metin:
kelimeler.append(metin[0:])
break
if metin[indis] == " ":
indis += 1
else:
kelime_baslangic = indis
kelime_indis = indis
kelime_boyutu = 0
while metin[kelime_indis] != " ":
kelime_boyutu += 1
kelime_indis += 1
if metin[kelime_indis].isspace():
kelimeler.append(metin[kelime_baslangic:kelime_baslangic + kelime_boyutu])
indis += kelime_boyutu
kelime_indis = 0
kelime_boyutu = 0
break
print(kelimeler)
İkinci örnek:
metin = bytearray(input("Metin: "),"utf-8","ignore")
indis = 0
kelimeler = []
while len(metin) > 0:
for i in metin.decode():
if i.isspace():
kelimeler.append(metin[0:indis].decode())
del metin[0:indis + 1]
indis = 0
break
indis += 1
if " " not in metin.decode():
kelimeler.append(metin.decode())
del metin[0:]
print(kelimeler)
Yukarıdaki ile prensip olarak aynı. Tek fark her boşluk karakterinde bytearray nesnesi sayesinde metni silip iterasyonu tekrarlaması.
Başka metotlarınız varsa lütfen yazın. Kolay gelsin.