Kodun mantığını anlamak

Mstafa123131

Femtopat
Katılım
27 Kasım 2020
Mesajlar
23
Daha fazla  
Cinsiyet
Erkek
Bu kodda neden "... > -1:" yazdık ve neden -1'i çıkarınca tüm listeyi yazdırdı?

[CODE lang="python" title="Python"]yer = ["Bolu", "Adana", "İnebolu", "Antalya", "Kütahya"]

for i in yer:
if i.find("bolu") > -1:
print(i)
[/CODE]
 
Son düzenleyen: Moderatör:
Niye üzgün attınız hemen hemen aynısını söyledim.
 
Aynısını mı? Bolu ile bolu aynı şey mi? Kod çalışınca Bolu değil, İnebolu yazdırır. Bilmeyip yazıyorsunuz bir de üste çıkmaya çalışıyorsunuz.
Bi sakin olun. Egonuz var biraz. Üste çıktığım falan yok.
 
Bu kodda neden "... > -1:" yazdık ve neden -1'i çıkarınca tüm listeyi yazdırdı?
Dostum şimdi öncelikle kısaca özetleyelim, yer değişkenini kullanarak bir liste oluşturduk ve bu listeye Bolu, Adana, İnebolu, Antalya, Kütahya şehirlerini yerleştirdik. Sanırsam buraya kadar sorun yok.

Devamında for döngüsünü kullanarak listeden sırayla eleman çekiyoruz. İlk seferde Bolu sonrasında Adana, İnebolu, Antalya ve Kütahya şeklinde sırasıyla bu şehirler belirttiğimiz gibi "i" değişkenine atanacak ve döngüdeki diğer işlemler gerçekleştirilecek.

" if i.find("Bolu") > -1: "
ifadesine gelirsek, burada gelen değerin Bolu olup olmadığını sorguluyoruz ve bunun için de .find() metodunu kullanıyoruz. Bu metodun özelliği şudur: eğer belirttiğimiz parametre ("bolu") listemizin içerisindeyse index'ini (sıra numarası) verir.

Yani eğer Bolu'yu bulursa 0, Adana'yı bulursa 1, Kütahya'yı bulursa 2 olmak üzerine bu değerleri yazdırma imkanı tanır.

İşte sorduğun sorunun cevabı tam da burada başlıyor. .find() metodu eğer aradığımız şehri bulamazsa bize -1 (eksi bir) cevabını verir. Biz de belirttiğimiz değerin -1'den büyük olması durumuna bakıyoruz. Yani if (eğer) "yer" listesinde Bolu şehri bulunuyorsa bu şehir ekrana yazdırılacak, eğer bulunmuyorsa farklı seçenekleri elif veya else olarak ekleyebiliriz.

Edit: .find() metoduna parametre olarak "bolu" ifadesini verirsen "İnebolu" çıktısı alırsın. Burada büyük-küçük harflere dikkat etmemiz gerekiyor. Eğer ekrana "Bolu" yazdırmak istiyorsan aynen bu şekilde ilk harfi büyük yazman gerekiyor.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…