Tweet

Python - Döngüler,Listeler

uploads/20110628-030353-1.jpgBir önceki yazımızda temel durumlardan söz etmiştik.Devamı niteliğinde olan bu yazımızda döngüleri ve listeleri inceleyeceğiz.Python dilinde listeler birçok durumda sıkça başvuracağımız özellikler barındırır.Listeler [] blokları içerisinde yazılır.Listenin her bir öğesi , virgül ile ayrılır ve "" tırnak işaretleri arasında yazılır.Şayet integer türünden bir öğe tutacaksak "" işaretleri olmadan yazarız.İstersek bir liste içerisinde hem string hem integer türden veri tutabiliriz.Hatta liste içerisinde liste bile tutabiliriz.Listelerde öğelerin sıra numaraları 0'dan başlar.Dolayısı ile listedeki bir öğeye erişmek için onun sıra numarasından faydalanabiliriz.Bir listedeki herhangi sıradaki öğeye ulaşmak için liste_adi[sıra_numarası] biçimini kullanırız.[...]

CODE:
liste["Oguzz","Okan","Makif","Ali","Veli"]

print(liste)


Bu şekilde listedeki tüm öğeleri yazdırabiliriz.Ancak her zaman listedeki tüm öğelere ihtiyacımız olmayabilir.Örneğin ilk sıradaki "Oguzz" öğesini almak isteyebiliriz.Bu durumda öğenin sıra numarasını kullanacağız;
CODE:
liste["Oguzz","Okan","Makif","Ali","Veli"]

print(liste[0])


Buradaki 0 ilk sırada olan Oguzz öğesini işaret eder.Başlarkende belirttiğimiz gibi listelerin sıra numarası 0'dan başlar.

Peki listemize devamlı bir ekleme yapılıyorsa? tek tek saymamız elbette mümkün olmayacak.Bu durumda listelerle beraber kullanacağımız hayat kurtarıcı len() fonksiyonu yardımımıza geliyor.Len fonksiyonu ile bir listede kaç tane öğe olduğunu bulabiliriz.Ancak burada dikkat edilmesi gereken nokta len fonksiyonunun saymaya 1'den başlaması.

CODE:
liste["Oguzz","Okan","Makif","Ali","Veli"]

print(len(liste))


Şeklinde uzunluğu alabiliriz.

Bunu örneklemek amacıyla basit bir uygulama yazalım.Uygulamamızda yine kullanıcıdan bir veri girmesini isteyelim.Listemizde Bonus adında bir kelime tutalım.Kullanıcımızdan bu kelimeyi tahmin etmesini isteyelim.Eğer kullanıcının girdiği kelime listedeki Bonus kelimesiyle eşleşirse tebrikler doğru tahmin! şeklinde bir mesaj verelim.Eşleşmediği sürece kuracağımız döngü ile tekrar veri isteyelim..

CODE:
liste = ["Ali","Veli","Bonus"]

tahmin = (input("Tahmininiz : "))

while (liste[2]) != tahmin:
tahmin = (input("Tahmininiz : "))

if (liste[2]) == tahmin:
print("Tebrikler",len(liste),"seçenek arasından",tahmin,"kelimesini buldunuz!")



İstersek listelere veri ekleyebiliriz.Bunu geçici bir hafıza olarak düşünebilirsiniz.Örnek yaparak açıklayalım bunu.Yine kullanımızdan veri girmesini isteyelim.Bir üst limit belirtelim ve listeye eklenebilecek max. değeri verelim.Kullanıcı her veri girdiğinde biz listemize ekleyelim sonunda limit ile eşleşince listedeki öğelerin sayısı.Tüm listeyi yazdıralım.

CODE:
kelimeler =  (input("Kelimenizi Girin : "))
liste = []
kapasite = 10

while (len(liste)) != kapasite:
liste.append (kelimeler)
print("Listeye Eklendi")
kelimeler = (input("Kelimenizi Girin : "))

if kapasite == (len(liste)):
print (liste)


Burada append ifadesi ile listeye ekleme yapıyoruz.Listelerin bunun gibi bir çok methodu bulunmaktadır.Bunları diğer yazılarımızda örneklendireceğiz..

Az önceki örneğimizde veri ekledik.Peki istediğimiz veriyi silmek istersek ne yapacağız ?
Bu noktada remove methodunu kullanıyoruz.Ancak dikkatinizi çekmiştir listeye her seferde bir öğe ekleyebiliyoruz.Birden fazla öğe eklemek için listenin extend methodunu kullanabilirsiniz.Daha sonraki örneklerimizde bunlarada değineceğiz.


Bir sonraki yazıda hataları yakalamak için try-except kullanımını,hazır fonksiyonları kullanmayı ve yeni fonksiyonlar yazmayı yine örneklerle anlatacağım.





Oguzz
oguz@thecoders.net
5 Nisan 2011 09:43

İlgili Olabilecek Makaleler


Yorumlar (2)





cafx1
2 Haziran 2011 15:00
sevgili oguz hocam python dilini ögrenmekteyim bu konuların faydası oldu, ama yetersiz geldi:D
daha genis python programlama dersleri vermeniz mümkünse cok memnun olurum dersleriniz gayet net ve ögretici nitelikte, uygulamaya uygun.
benim ögrenmem gerekenlerden biride python ile socket programlama bunu bi makalenizde vermissiniz biraz acemi oldugumdan pek kavrıyamadım calıstıramadım desem daha uygun olur. bu socket programlamayı daha geniz acıklamalarla yeniliyebilirmisiniz hiç bilmeyenlere göre mantıgını anlayamadım biraz.

verdiginiz bu dersler içinde teskür eder çalısmalarınızda basarılar dilerim..


Oguzz
16 Haziran 2011 17:56
İşlerimden dolayı site ile ilgilenmeye pek vakit bulamadım açıkcası. Python ile ilgili konulara vakit buldukça değineceğim buna soket programlamada dahil. Yalnız yeni başlayan biri için ileri bir konu dilin temel söz dizimine hakim olmanızı ardından diğer kütüphaneleri incelemenizi tavsiye ediyorum. Elbette bende yazılarımal destekleyeceğim bu durumu (: teşekkür ederim,başarılar.

Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg