NASIL:Python ile programlama

PardusWiki, özgür ansiklopedi

Git ve: kullan, ara

Konu başlıkları

[değiştir] Önbilgi

[değiştir] Python nedir?

[değiştir] Özellikleri & Avantajları

[değiştir] Python'u nereden bulabilirim?

[değiştir] Veri Tipleri

[değiştir] Integers (Sayısal veriler)

Sayısal ifadeleri tutmak için kullanılır. en basit hali ile bir değişkene sayısal veri atamak

 Değişken = Sayı

şeklinde olur. Python verdiğiniz sayının cinsini otomatik olarak algılayıp değişken tipinizi otomatik olarak belirler. Eğer sayısal veri tipi el ile ayarlanmak isteniyorsa ilgili sayısal sınıf ile birlikte çağırılır.

Python'da Kullanılabilen Sayısal Veri Tipleri.
Atama şekli Anlamı
sayi = int(13)sayi = integer tipinde 13 sayısı
sayi = float(13)sayi = float tipinde 13 sayısı
sayi = long(13)sayi = long integer tipinde 13 sayısı
sayi = octal(13)sayi = octal (8'lik sayı sisteminde) integer tipinde 13 sayısı
sayi = hex(13)sayi = hexadecimal (16'lık sayı sisteminde) tipinde 13 sayısı

[değiştir] Strings (Alfanümerik veriler)

Bir karakter katarı saklamak için kullanılır. Python da string'ler bir yada birden fazla satır karakter katarı saklayabilirler. En basit hali ile bir değişkene karakter katarı atamak :

 Değişken = 'değişkene atanacak metin'

şeklinde olur. Bu atama sırasında " (çift tırnak) yada ' (tek tırnak) işaretlerinden biri kullanılır. Tek tırnak işareti kullanıldığında string olduğu gibi alınır üzerinde hiçbir değişiklik yapılmaz çift tırnak işaretine nazaran daha hızlı çalışır (günümüz bilgisayarlarında bu hız farkı anlaşılırmı bilmiyorum). Eğer string belirtilirken çift tırnak kullanılırsa o string içerisinde çeşitli özel karakterler (%s , %d vs.) aranır , varsa değiştirilir. Bu konuyu şimdilik anlamanıza gerek yok sadece gerekli zamanlar hariç tek tırnak işareti kullanmaya özen göstermeniz gerektiğini bilin yeter.

Eğer girilecek metin çok uzunsa \ (backslash) karakteri metni bölüp alt alta yazmak için kullanılabilir.

 Değişken = 'Bu metin çok uzun olduğu için \
 backslash karakteri ile bölünüp alt alta yazılmış\
 böylelikle kod içerisinde çirkin, upuzun bir satır\
 oluşmasına engel olunmuştur'

Bu uzun satır sorununa alternatif bir çözüm ise string'i """ (üç tırnak) işareti altına almaktır.

  Değişken = '''Bu metin tıpkı backslash ekleme yönteminde
  olduğu gibi alt alta yazılmış fakat üç tırnak
  işaretleri arasına alınıp satır sonlarında \ işareti kullanılmamış.'''  
  

[değiştir] String Metodları

metin = 'bu bir string'

[değiştir] capitalize

Syntax
StringObject.capitalize()
Açıklama
İlk harfini büyük yapar.
Örnek
 >>> print metin.capitalize()
 >>> Bu bir string

[değiştir] center


Syntax
StringObject.center(genişlik,doldurma karakteri)
Açıklama
Metni , doldurma karakterini kullanarak belirlenen genişliğe kadar genişletir ve yazıyı ortalar.
Örnek
 >>> print metin.center(40,'-')
 >>> -------------bu bir string--------------

[değiştir] count


Syntax : StringObject.count() Açıklama : String içerisinde ilk ve sonunu karakterler arasında alt metinin kaç tane geçtiğini döndürür. Buradaki ilk ve son parametreleri isteğe bağlıdır. Örnek:

 >>> print metin.count('i')
 >>> 2

[değiştir] decode


Syntax
StringObject.decode(kodlama)
Açıklama
String'i verilen kodlamayı kullanarak deşifre eder.
Örnek
Yok.

[değiştir] encode


Syntax
StringObject.encode(kodlama)
Açıklama
String'i verilen kodlamayı kullanarak şifeler.
Örnek
Yok.

[değiştir] endswith


Syntax
StringObject.endswith(Son_ek[Başlangıç,Bitiş])
Açıklama
Eğer metin Son_ek ile bitiyorsa True bitmiyorsa False döndürür. Başlangıç ve Bitiş parametreleri keyfi olarak testin başlangıç ve bitiş noktalarını belirtmek için verilebilir.
Örnek
 >>> print metin.endswith('ng')
 >>> True
 >>> print metin.endswith('ab')
 >>> False

[değiştir] expandtabs


Syntax
StringObject.expandtabs([tab_uzunluğu])
Açıklama
StringObject içerisinde bulunan tab karakterlerini aralık karakterlerine dönüştürür. Her tabın kaç aralık karakteri edeceği belirtilebilir.
Örnek
 >>> print metin
 bu      bir     string
 >>> print metin.expandtabs(15)
 bu             bir            string

[değiştir] find


Syntax
StringObject.find(alt_metin[,başlangıç,bitiş])
Açıklama
Eğer alt_metin StringObject içerisinde bulunursa pozisyonunu , bulunamazsa -1 değerini döndürür.
Örnek
 >>> print metin.find('ir')
 >>> 4

[değiştir] index


Syntax
StringObject.index(alt_metin[,başlangıç,bitiş])
Açıklama
find metodunun aynısıdır fakat bulunamazsa -1 değerini döndürmez value error verir.

[değiştir] isalnum


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] isalpha


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] isdigit


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] islower


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] isspace


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] istitle


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] isupper


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] join


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] ljust


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] lower


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] lstrip


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] replace


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] rfind


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] rindex


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] rjust


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] rsplit


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] rstrip


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] split


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] splitlines


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] startswith


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] strip


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] swapcase


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] title


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] translate


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] upper


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] zfill


Syntax
Açıklama
Örnek
 >>>
 >>>

[değiştir] Containers (Taşıyıcı veri tipleri)

[değiştir] List (Liste veri tipi)

Listeler ardaşık veri listeleridirler. Liste elemanları köşeli parantez içine alınır ve , (virgül işareti) ile ayrılırlar. elemanlar herhangi bir veri tipinde olabilir.

 >>> meyveler = ['elma' , 'armut' , 'ayva']
 >>> sayilar = [1,3,5,10]
 >>> karisik = ['bir string',4,2]

Liste elemanlarına meyveler[kaçıncı eleman] şeklinde ulaşılabilir. Yukarıdaki meyveler listesindeki armut elemanını yazdırmak için.

 >>> print meyveler[1]
 >>> armut

Şeklinde çağırılabilir. Çeşitli şekillerde içeriği değiştirilebilir. Örneğin listedeki 2. elemanı limon olarak değiştirmek için.

 >>> meyveler[2] = 'limon'
 >>> print meyveler
 >>> ['elma','armut','limon']
Not: Python saymaya 0 dan saymaya başlar. Bu sebepten yukarıda armut 2. değil 1. eleman olarak çağırıldı.

Listeler üzerinde değişiklik yapmak la ilgili diğer fonksiyonlar

[değiştir] Liste Metodları

[değiştir] append


Syntax
ListObject.append(nesne)
Açıklama 
Liste sonuna bir nesne ekler, nesne string yada integer olabilir.
Örnek
 >>> meyveler.append('karpuz')
 >>> print meyveler
 ['elma','armut','limon','karpuz']

[değiştir] count


Syntax
ListObject.count(nesne)
Açıklama
Verilen nesnenin listede kaç adet olduğunu döndürür , nesne string yada integer olabilir.
Örnek
 >>> print meyveler.count('karpuz')
 1

[değiştir] extend


Syntax
ListObject.extend(taşıyıcı)
Açıklama
Listeyi verilen taşıyıcıdaki elemanlarla genişletir, taşıyıcı tüp yada liste olabilir.
Örnek
 >>> eklenecekler = ('portakal','mandalina','muz')
 >>> meyveler.extend(eklenecekler)
 >>> print meyveler
 ['elma', 'armut', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz']

[değiştir] index


Syntax
ListObject.index(nesne)
Açıklama
Nesnenin liste içerisinde kaçıncı eleman olduğunu döndürür. eğer verilen eleman listede yoksa hata mesajı döndürür. nesne string yada integer olabilir.
Örnek
 >>> print meyveler.index('erik')
 >>> 2

[değiştir] insert


Syntax
ListObject.insert(sıra,nesne)
Açıklama
Listenin belirlenen sırasına nesneyi ekler. Verilen sıradan sonraki elemanlar ileri ittirilir. Nesne integer yada string olabilir.
Örnek
 >>> print meyveler
 ['elma', 'armut', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz']
 >>> meyveler.insert(2,'kiraz')
 >>> print meyveler
 ['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz']

[değiştir] pop


Syntax
ListObject.pop()
Açıklama
Listenin sonundan bir eleman döndürür ve o elemanı siler. Bu özellik append() ile birlikte kullanıldığında listelerin stack gibi kullanılabilmesini sağlar.
Örnek
 >>> sonelelman = meyveler.pop()
 >>> print soneleman
 muz
 >>> print meyveler
 ['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']

gördüğünüz gibi soneleman değişkeni meyvelerin son elemanı olan muz oldu ve meyveler listesi bir eksildi.

[değiştir] remove


Syntax
ListObject.remove(eleman)
Açıklama
Listede verilen elemanı arar bulduğu ilk eşleşmeyi siler. Eğer verilen eleman listede yoksa hata döndürür.
Örnek
 >>>meyveler.append('elma')
 >>> print meyveler
 ['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'elma']
 >>> # şu anda listede 2 adet elma var
 >>> meyveler.remove('elma')
 >>> print meyveler
 ['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'elma']
 >>> meyveler.remove('elma')
 >>> print meyveler
 ['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']

[değiştir] reverse()


Syntax
ListObject.reverse()
Açıklama
Listedeki elemanların sırasını tersine çevirir.['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']
Örnek
 >>> print meyveler
 ['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']
 >>> meyveler.reverse()
 >>> print meyveler
 ['mandalina', 'portakal', 'karpuz', 'limon', 'erik', 'kiraz', 'armut']

[değiştir] Tube (Tüp veri tipi)

Tüp veri tipi listeler ile aynı mantıkta çalışır, tek farkı sadece bir kez belirlenir ve daha sonra bu listeye ekleme çıkarma, üzerinde oynama yapılamaz. Eğer gerekli olan listenin içeriğini değiştirmemize gerek yoksa tüp veri tipi kullanırız. Listelere nazaran daha performanslı çalışırlar.

Bir değişkeni tüp olarak belirlemek için listelerle aynı yöntem kullanılır tek fark köşeli parantez yerine normal parantez kullanılmasıdır.

>>> Tup = ('elma' , 'armut' , 'ayva')
>>> print Tup[1]
armut

[değiştir] Dictionary (Sözlük veri tipi)

Sözlük veri tipi sözlük gibi çalışır. Çeşitli anahtarlara çeşitli değerler atanır ve o anahtarlarla çağrılır. Bir sözlük oluşturulurken anahtar ve değerler : (iki nokta üst üste) işaretiyle ayrılır. Bu anahtar:veri ikilemeleri de birbirlerinden , (virgül) işareti ile ayrılırlar. Bütün grup memeli parantez (:S neydi bunun adı?) içine alınır. Ahmet ve Mehmet anahtarlarına sahip telefon rehberi aşağıdaki gibi ifade edilir.

 >>> telefonlar = {'Ahmet':'423 42 12','Mehmet':'123 43 47'}

Bu sözlüklerden anahtarlarla bir telefon numarası almak için telefonlar[anahtar] şeklinde çağırılır.

 >>> print telefonlar['Ahmet']
 >>> 423 42 12

Eğer verilen anahtar bulunamaz ise Python hata verir.

 >>> telefonlar['Suat']
 Traceback (most recent call last):
   File "<stdin>", line 1, in ?
 KeyError: 'Suat'

[değiştir] Kontrol Yapıları

[değiştir] Karar Mekanizmaları

[değiştir] if..elif..else..

 if önerme :
   ise birşeyler yap
 elif başka bir önerme:
   ise başka birşeyler yap.
 else:
   hiçbiri değilse bambaşka birşeyler yap.

Buradaki durum sonucu True yada False olarak dönen herhangi bir önerme, olabilir. Sonucu True olarak döner ise if den sonraki komutlar gurubu değil ise else: den sonraki komutlar grubu işlenir.

Not:
  • Python dilinde şu değerler False olarak kabul edilir : False, None , bütün sayısal tiplerde 0 sayısı , boş string'ler ve taşıyıcılar (string'ler, tüp'ler, liste'ler ,sözlükler).
  • Diğer herşey True olarak kabul edilir.

Karşılaştırma yapan operatörler :

OperatörAnlamıKullanım ÖrneğiNeleri karşılaştırabilir
<küçüktür5 < 4sayısal verileri.
>büyüktür5 > 4sayısal verileri.
<=küçük ya da eşittir5 < 4sayısal verileri.
>=büyük ya da eşittir5 > 4sayısal verileri.
==eşittir5 == 4 , 'elma'=='armut'sayısal ve sözel verileri.
!=eşit değildir5!=4 , 'elma'!='armut'sayısal ve sözel verileri.
iniçinde vardır'elma' in meyvelersayısal ve sözel verileri.
Andve..(5>4) And (elma in meyveler) önermeleri.
Orveya..(5>4) Or (elma in meyveler) önermeleri.
Notdeğil..(5>4) Not (elma in meyveler) önermeleri. (?? FIXME : burada bir yanlışlık var)

Daha somut bir örnek vermek gerekirse..

 ifdene.py
 sayimiz = 7
 if sayimiz > 5:
   print "sayımız 5 den büyük bir sayı."
 elif sayimiz < 5:
   print "sayımız 5 den küçük bir sayı.
 else:
   print "sayımız 5" # 5 den büyük yada küçük değilse kendisidir ;)

[değiştir] if..elif..else

[değiştir] Döngüler

[değiştir] for..in..:

[değiştir] while

--Mcbayrak 13:23, 20 Temmuz 2008 (EEST)