10 Ekim 2011 Pazartesi

Demetler

1 haftalık vize evresinden sonra derslerimize kaldığımız yerden
devam ediyoruz.

Bu dersimizde demetleri işleyeceğiz.Uzun zaman oldu başlayalım artık dimi :)

Demetler, listelerin bir çeşidi diyebiliriz.Demetler oluşturulduktan sonra
değiştirilemezler.

Demet oluşturmayı ayrıntılı olarak göstermiyeceğim.Çünkü listelerle aynı
oluşturma özelliğine sahip.Bazı farklarını göstereceğim.

Demet oluşturma

KOD

demet=('a','b')

veya

demet1='a','b'

tiplerine bakacak olursanız

KOD

type(demet)


gibi ekran yazısıyla karşılaşacaksınız.tupple inglizcede demetin
karşılığı olarak kullanılır.

Dediğimiz gibi Listelerin değiştirilemeyen halleri olduğu için
listelerdeki özellikleri(isim yazdırma,dilimleme...) barındırır.
Ama pop,remove,append,extend,insert gibi liste metodları çalıştırılmaz.
Nedeni ise, dersimizin başında da dediğimiz gibi listelerin
değiştirilemeyen hali olduğu için öge ekleme,çıkarma işlemleri
gerçekleşmez.İsterseniz deneyin bakın yani haklı ben çıkacağım :)


Gelelim demetlerin kendine has metodlarına:count ve index;


count
Demetimizdeki herhangi bir ögenin kaç defa geçtiğini gösteririr.


KOD
demet.cout('')

şeklinde kullanılır.


index
Demetimizdeki ögenin kaçıncı sırada olduğunu söyler.

KOD
demet.index('')


' 'in demet
Herhangi bir ögenin varlığını sorgular

KOD
'a' in demet

kodu demetimizin içerisinde a'nın oluğ olmadığını belirler.
Var ise True yok is False yazdıracaktır.

-Diğer bir fark ise;demetler listelerden daha hızlıdır.
-Aynı anda birden fazla veriyi başka verilere atayabiliriz.


KOD
yeni=('a','b','c')

(1,2,3)=yeni

burada a'yı 1'e, b'yi 2'ye,c'yi 3'e atamış olduk.ekrana yazdırısak

KOD

a

kodu ekrana '1'  çıktısını verecektir.


Bu dersimizde bu kadar bir dahaki derslerde görüşmek üzere...

 

Kümeler-1

ümeler konusuyla derslerimize devam edelim...

Daha öncede okulda öğrendiğimiz kümelerle aynı özelliklere sahiptir.
Yani kesişme,birleşme,fark gibi...

Küme oluşturmayla başlayalım

KOD

küme={'a','b','c'}


şeklinde bir küme oluşturuyoruz.

Boş küme oluşturmayı görelim

KOD

küme1=set()
type(küme1)
len(küme1)

şeklindeki kod boş kümenin tipini(set),küme sayısını bize gösterecektir.

Kümeler gelişi güzel sıralanırlar.Yani;

KOD
küme={'a','b','c'}

kümesini ekrana yazdırırken

KOD
küme
{'b','c','a'}

bir ekran çıktısı alabilirsiniz.


Yine liste ve demetlerde olduğu gibi öğe aratabiliriz.

KOD
'a' in küme

a karakterinin küme içinde olup olmadığını bize verecektir.



-Listeleri de kümler içinde kullanabilriz.

KOD
a=['d','c']
küme2=set(a)

kodu a listemizi küme2 'nin içne atmış oluyoruz.

tipine bakarak ta bunu görebiliriz.

KOD
type(küme2)

kodu hemen altında



şeklinde ekran çıktısı verecektir.Yani küme olduğunu belirtecek ifadedir set.


Demetleri de kümeye katabiliriz

KOD
demet=('a','d','s')

küme3=set(demet)

type(küme3)


kodlarıyla demetimizi kümemizin içinde atmış olduk ve tipine baktık.


Diğer bir liste ekleme yöntemi ise,


KOD


küme4=set(['q','r','f'])
typr(küme4)


kodlarıyla küme4'e direk bir liste atayarak tipine bakabiliriz.


Şimdi kümelerin metodlarına geçelim...

KOD
dir(set)


kodu ile kümelerimizin metolarını ekrana yazacaktır.

Kümeler-2

Metodlarımıza başlayalım...


add metodu
kümemize öge eklemek için kullanılır.sadece bir tane öge ekleme
özelliğine sahiptir.


KOD
kümeler={1,2,3,4,5}

kümeler.add(6)

kodu kümeye 6 sayısını ekler.

Bu metod ile liste,demet,int,string gibi veri tipleride eklenebilir.


liste ekleme

KOD

kümeler.add((7,8,9))

kodu kümemize (7,8,9) listesini ekleyecektir.



update metodu
bu metod ile değişken yada küme ekleyebiliriz.

KOD

kümeler.update=({php,python,css})


kodu kümemiz bir küme daha ekleyecektir.



discard,remove,pop metodları
Bu metodlar kümeden öge çıkarmayı sağlar.
-discard ile sadece bir öğe silinir ve kümede olmayan elemanı silme komutu
verildiğinde herhangi bir hata vermez.
-remove ile sadece bir öğe silinir ve kümede olmayan elemanı silme komutu
verildiğinde hata mesajı veririr.
-pop veri girememize izin vermeyen bir metoddur.pop metodu tek te siler ögeleri.


KOD
kümeler.discard(2)

kodu ile 2 'yi sileriz.


KOD
kümeler.remove(4)

kodu ile 4 'ü sileriz.


KOD
kümeler={1,3,5}

kümeler.pop(1)

yazdığımızda hata vereecktir.Çümkü pop değer almaz.
Sırasıyla aşağıdaki işlemleri gerçekleştirdiğimizde,

KOD
kümeler.pop()

1'i siler


kümeler.pop()
3'ü siler


kümeler.pop()
5'i siler


yani sıra ile silme işlemini gerçekleştirir.Silinecek öge kalmadığında ise
ekrana hata mesajı çıktısı verir.

Python programcısına tavsiyeler

Daha iyi bir Python programcısı ya da genel anlamıyla iyi bir programcı(aslında bu tabiri sevmiyorum) olmaya çalışırken hangi yolu izlediğimi, daha doğrusu izlemeye çalıştığımı maddeler halinde, Python’dan örnekler de vererek, yazayım bugün. Peşinen söylemeliyim ki; henüz iyi bir programcı olma konusunda başarılı olduğumu söyleyemem. Yemem gereken 40 fırın ekmek ve aşmam gereken yıllar var… :)
1- Bilgisayar biliminin temellerini bilin.

Program yazarken kullandığımız programlama dillerinin ve tekniklerin bir teorik temeli var. Veri yapıları, algoritmalar, nesne yönelimli programlama, tasarım örüntüleri(design patterns) gibi konularda iyi kötü teorik bilgiye sahip olun. Hatta zamanınız varsa ve gerçekten ilgi duyuyorsanız daha fazlasını da çalışabilirsiniz. Bu madde benim gibi Bilgisayar Mühendisliği ya da yakın dallarla okul bazında alakası olmayanlar için çok önemli; çünkü yaptığınız işin temelini bilmelisiniz.
2- Kullandığınız dilin temel özelliklerini iyi bilin.

Bir programlama dilinde etkin kod üretebilmek için onun inceliklerini bilmeniz gerekir. Python özelinde konuştuğumuza göre kaynak da gösterebilirim. Resmi Python dökümanlarındaki bazı kısımlar ve bazı kaynak kitaplar işinizi görebilir.
http://docs.python.org/release/3.1.3/tutorial/index.html
http://docs.python.org/release/3.1.3/howto/
http://diveintopython3.org
3- Düzenli olarak kod yazın.

Eğer bir dili öğreniyorsanız, onu düzenli olarak kullanmalısınız. Bu sizi zinde kılar. Tıpkı bir sporcu gibi; sürekli çalışırsanız o dili, dolayısıyla programlamayı da zamanla özümsersiniz. Size 10 günde ya da 3 haftada programlama ya da programlama dili öğreteceğini iddia eden kitaplara, kaynaklara kanmayın. Programlama yeteneğiniz, zeka ve deneyim gerektiren tüm diğer işlerde olduğu gibi zamanla gelişir.
4- İyi yazılmış kodları okuyun.

Sizden daha zeki ve muhtemelen daha uzun zamandır program yazan insanlar vardır kesinlikle. Onların yazdıkları kodları okuyun. Github, Gitorious, Google Code ve Sourceforge gibi kaynaklarda pek çok proje var. İlginizi çekenlerin ve kaliteli kod içerdiğine inandıklarınızın kodlarını edinin ve okuyun. Kod roman okur gibi okunmaz elbette ama sadece baksanız bile bir göz aşinalığı edinirsiniz. Ayrıca yapabiliyorsanız koda ufak tefek müdahalelerde bulunup nasıl çalıştığını gözleyin. Bu sizi motive eder.
Son dönemde dikkatimi çeken ve bolca kaliteli Python kodu içeren PyPy projesi var mesela. İnceleyin, gerçekten çok ilginçtir… Ayrıca Python’un kendi kodunu da inceleyebilirsiniz. Kodun C kısmından bahsetmiyorum; saf Python’la yazılmış modülleri inceleyin. Bizzat Python geliştiricileri ve katkıcıları tarafından yazılmış kodlar ve gayet güzeller.
5- Temiz ve standartlara uygun kod yazın.

İster Özgür Yazılım geliştirin ister sahipli, kodlarınız mümkün olduğunca okunaklı ve standartlara uygun olmalıdır. Bu durum Özgür Yazılım projeleri için daha da önemli; çünkü sizden başkaları da programınızı geliştirmek isteyebilir. Sadece yazdıklarınızı anlamak bile yeterli bir beyinde verimli fikirler oluşturabilir. Ayrıca programınızı nasıl dağıtırsanız dağıtın kodun kirli ve standart dışı, yani kalitesiz, olması zamanla projenizi öldürebilir.
Meşhur PEP 8, Python’un stil rehberi gibidir. Onu okuyun.
http://www.python.org/dev/peps/pep-0008/
Bu da Google‘ın Python hakkındaki tavsiyeleri. Google gibi Python’u çok yoğun olarak kullanan kaliteli bir firmanın dediklerine kulak asmak gerekir.
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
6- Yarım yamalak öğrenmeyin.

Kullandığınız dilin bir özelliğini keşfettiğinizde, o konu hakkındaki her şeyi araştırın ve bulduğunuz bilgiyi elinizden geldiğince özümseyin. Bir şeyi yarım yamalak bilmek çok tehlikelidir.
7- Daha fazlasını öğrenin.

Özellikle benim gibi orta düzey bir programcıysanız öğreneceğiniz çok şey vardır. Yazdığınız program muhtemelen çok daha güzel ve zekice yazılabilir. Sürekli araştırın, yeni özellikler ve teknikler öğrenip onları kullanmaya çalışın.

alıntıdır.

continue

Bu dersimizde continue ifadesini göreceğiz.

continue ifadesi döngünün belirli bir yerini atlayarak tekrar
başa dönmesini sağlar.

Örnek

KOD


while True:
    x=input('nEn az 4 harften uzun kelime giriniz:')
    if len(x) < 5:
        print('nEn az 4 harften daha uzun bir kelime giriniz!!!')
        continue
    print('nKelimeniz uygun.')


Açıklayalım:

Örneğimizde while döngüsünü kurarak başlıyoruz.
Burada girdiğimiz kelimenin uzunluğunu baz alarak yazdığımız bir
şarta bağlı döngüdür.
Bu kelime 4'den küçük ise hata verecek,4 harf ve üstü
kelimelerimizde kelimeniz uygundur yazsını ekrana verecektir.
continue ifadesine geldiğinde başa yani en az dört harften uzun
bir kelime ekranına geri dönecektir.

Şimdilik basit bir örnek yaptık siz bildiklerinizle ve tabiki
hayal gücünüzle istediğiniz şekilde değişik programlar yapabilirsiniz.

Bu derslik bu kadar bir daha ki derslerde görüşmek üzere...

break

Bu dersimizin konusu break ifadesi

Bu ifade herhangi bir dögüden çıkmamızı sağlar

Örnek

KOD

while True:
    x=input('Sevdiğiniz hayvan:')
    print (x)
    if x=='programdan çık':
        break
    print('Kelimeniz',len(x),'uzunluğundadır.')
print('Görev tamam!!!')


girdiğimiz hayvan isminden  sonra hayvanın ismini ve uzunluğunu
yazacaktır.Eğer ekrana    programdan çık    yazarsak görev tamamlandı
yazıp programdan çıkacaktır.

Bu dersimiz bu kadardır.Bir dahaki derslerde görüşmek üzere.


Not:Yukarıdaki kodlar python 3.1 ile yazılmıştır.python 3.2 de
yazacak arkadaşlara belirtmek istedim.Bazı yerlerde yanlış işlemler
gerçekleşiyor python 3.2.

Python Hesap Makinası

işlemler="""("toplama","çıkarma","çarpma","bölme","çık")=range(5)"""
yardım="nToplama için 0'annÇıkarma için 1'ennÇarpma İçin 2'yennBölme içinde 3'e basınız..."
print (yardım)

soru = input("nYapıcağınız işlemi seçin : ")

while True:
    if soru=="0":
        sayi1=int(input('nİlk sayıyı giriniz :  '))
        sayi2=int(input('nİkinci sayıyı giriniz :  '))
        print ("nToplamanın Sonucu : " , sayi1+sayi2)
        soru=soru1=input("nToplama İşlemine Devam etmek istiyorsanız 0'anÇıkmak için 4'e yada diğer işlemler için devam ediniz : ")
      
    if soru=="1":
        sayi1=int(input('nİlk sayıyı giriniz :  '))
        sayi2=int(input('nİkinci sayıyı giriniz :  '))
        print ("nÇıkarmanın Sonucu : " , sayi1-sayi2)
        soru=soru1=input("nToplama İşlemine Devam etmek istiyorsanız 0'anÇıkmak için 4'e yada diğer işlemler için devam ediniz : ")
      
    if soru=="2":
        sayi1=int(input('nİlk sayıyı giriniz :  '))
        sayi2=int(input('nİkinci sayıyı giriniz :  '))
        print ("nÇarpmanın Sonucu : " , sayi1*sayi2)
        soru=soru1=input("nToplama İşlemine Devam etmek istiyorsanız 0'anÇıkmak için 4'e yada diğer işlemler için devam ediniz : ")
      
    if soru=="3":
        sayi1=int(input('nİlk sayıyı giriniz :  '))
        sayi2=int(input('nİkinci sayıyı giriniz :  '))
        print ("nBölmenin Sonucu : " , sayi1/sayi2)
        soru=soru1=input("nToplama İşlemine Devam etmek istiyorsanız 0'anÇıkmak için 4'e yada diğer işlemler için devam ediniz : ")
      
    if soru=="4":
        break