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:
Bak burada diyor ki senin parametre olarak verdiğin stringin ilk göründüğü yeri döndürür. Bulunamazsa -1 döndürür. Yani bulursa en düşük sıfır döndürebilir. Sen -1'den büyükse dedin. Demek ki içinde varsa demiş oluyorsun aslında.
Niye üzgün attınız hemen hemen aynısını söyledim.
 
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:

Geri
Yukarı