Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
2149
Tıklama
0
Öne Çıkarma
String index out of range hatası
T
8 yıl
Yüzbaşı
Konu Sahibi

Merhaba, python için edx kursu alıyorum. Kurs için bir proje yapmam gerekiyor. Proje, bir cümleyi alıp o cümlenin içindeki kelimelerden "g" harfinden sonraki harfler ile başlayanları yazdırmamı istiyor. Yani alfabetik olarak "g"den sonra gelen harflerle başlayan kelimeleri yazdırıyor.
Benim düşündüğüm program şöyle bir şey :

quote_1 = input("write a quote here: ")
quote = quote_1 + " "
for character in quote:
if character.isalpha():
word += character
else:
if word.lower() >= "h":
print(word.upper())
word = ""
else:
word = ""

Program istediğim gibi çalıştı, bir sorun yok ama if word.lower() >= "h": olan kısımda ben kelimenin baş harfinin "g"den sonra gelmesini istiyorum. Yani if word[0].lower() gibi bir şey denedim, index 0'ı değerlendirmek için; ama bu şekilde yazarsam "string index out of range" hatası veriyor, nedeni ne olabilir ?
Programlamada çok yeniyim, bu yüzden anlatmak istediğimi tam anlatamadım; kusura bakmayın. Umarım yardımcı olabilirsiniz.

Edit: Kolay okunabilmesi için ss koydum.
< Resime gitmek için tıklayın >

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi The Dread Wolf -- 2 Eylül 2017; 19:55:4 >

T
8 yıl
Yüzbaşı
Konu Sahibi

Up



< Bu ileti mobil sürüm kullanılarak atıldı >

İ
8 yıl
Yüzbaşı

Şöyle yaptım ve bir hata almıyorum.

< Resime gitmek için tıklayın >

Edit: En sondaki else de word değil words olucak.





< Bu mesaj bu kişi tarafından değiştirildi imammmm -- 3 Eylül 2017; 14:32:50 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
8 yıl
Yüzbaşı
Konu Sahibi

Normalde de çalıştı program ama benim takıldığım kısım şu :

If words.lower() >= "h":

Bu kısımda kelimenin ilk harfinin alfabetik olarak "g"den büyük olmasını istiyoruz ya ben dedim ilk harfe bakacaksak index 0a bakayım. Yani

If words[0].lower() >= "h": gibi bir kod yazamıyor muyuz ?

Hem .lower() hem de [0] kullanmak hatalı mı oluyor yani ?

Bu kısmı anlayamadım da



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @imammmm
İ
8 yıl
Yüzbaşı

Hocam bence asıl sıkıntı word isimli string dizinin belli boyutlarda olmaması. Girilen inputa göre değişiyor. O kısımda bir sıkıntı var bence.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Luxurian
A
8 yıl
Yarbay

ilk kelimeyi yazdırdıktan sonra else ile word="" yapıyoruz ya sonrakinde
.isalpha( her neyse bu :D) olan yer ile wordu doldurmazsak word[0] diye bir şey olmuyor ama oradaki kod çalışıyor ve bulamayınca hata veriyor
If words[0].lower() >= "h": # böyle bir şey yazabiliriz sorun çıkartmıyor başka yerde az önce denedim
ben böyle anladım ben de pek bir şey bilmiyorum

edit: ilk else yerine " elif bool(word): " veya " elif word !="": " yazarsak word boşsa çalışmaz ve sonraki adıma geçmez devam eder, bu şekilde sorun olmaz muhtemelen





< Bu mesaj bu kişi tarafından değiştirildi alimmm78 -- 4 Eylül 2017; 11:29:53 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @Luxurian
T
8 yıl
Yüzbaşı
Konu Sahibi

Anladım sanırım, teşekkürler



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @alimmm78 , @imammmm
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.