Kuflu Forum, indir, e-kitap, ekitap, sağlık, oyun, forum, izle, download

Go Back   Kuflu Forum, indir, e-kitap, ekitap, sağlık, oyun, forum, izle, download > Programlama Dilleri ve Grafik > Web Programlama




Python İşlev Tanımlama

Web Programlama


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 09.09.09, 22:10   #1 (permalink)
мαѕαŁрєяєѕт*
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 4.677
Ettiği Teşekkür Sayısı: 683
759 Konuda 11.119 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart Python İşlev Tanımlama

İşlev Tanımlama
Herhangi bir değere kadar Fibonacci serisi yazan bir işlev yazalım:
>>> def fib(n): # n'e kadar Fibonacci serisini yazdır
... "n'e kadar Fibonacci serisini yazdır"
... a, b = 0, 1
... while b < n:
... print b,
... a, b = b, a+b
...
>>> # Tanımladığımız işlevi çağıralım:
... fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
def anahtar kelimesi bir işlev tanımını başlatır. Bu deyimden sonra bir işlev adı ve parantez içinde parametreler yazılır. İşlevin gövdesini oluşturan program satırları sonraki satırdan itibaren girintili olarak yazılırlar. İşlev gövdesinin ilk satırı bir dizge de olabilir; bu dizge işlevin belgelenmesinde kullanılır (docstring).
İşlevlerin belgelenmesinde kullanılan dizgeleri (docstring) otomatik olarak çevrim içi ya da basılı belgeler oluşturmak için kullanan yazılımlar vardır. Ayrıca bazı geliştirme ortamları bunları program yazarken kolaylık sağlaması için etkileşimli olarak programcıya sunarlar. Yazdığınız işlevlere bunları eklemeyi bir alışkanlık haline getirmeniz faydalı olur.
Bir işlevin çağrılması (çalıştırılması) bu işlevdeki yerel değişkenlerin olduğu bir simge tablosu oluşturur. İşlev içerisinde bütün değer atama işlemlerinde değerler yerel simge tablosuna kaydedilir. Bir değişkene başvuru durumunda ise önce yerel (local), sonra genel (global) ve en son yerleşik (built-in) simge tablosunda arama yapılır. Bu yüzden genel değişkenlere doğrudan değer atama yapılamaz (eğer global ifadesi içinde kullanılmamışlar ise); ancak bunlara başvuru yapılabilir (reference).
İşlev çağırıldığında işlevin parametreleri yerel simge tablosuna eklenirler; yani parametreler işleve değeri ile çağrı (call by value) kullanılarak iletilirler (yani parametreye yapılan değişiklikler yereldir, çağıran işlevdeki argümanlarda bir değişme olmaz). [85]
Bir işlev başka bir işlevi çağırdığında bu çağrı için yeni bir yerel simge tablosu oluşturulur.
Bir işlev tanımı işlev adının yürürlükte olan simge tablosuna eklenmesine sebep olur. İşlevin adı yorurumlayıcı tarafından kullanıcı tanımlı işlev veri türü olarak tanınır. Bu değer başka bir isime atanabilir ve bu da bir işlev olarak kullanılabilir. Bu genel bir isim değiştirme yolu olabilir:
>>> fib
<function object at 10042ed0>
>>> f = fib # f de fib işlevi olur
>>> f(100)
1 1 2 3 5 8 13 21 34 55 89
fib'in bir işlev olmayıp bir yordam (procedure) olduğunu düşünebilirsiniz. Python'da yordamlar, çağıran işleve değer geri döndürmeyen işlevlerdir. Aslında yordamlar da bir değer geri döndürürler, ama bu sıkıcı bir konudur. Bu değere None denir ve yerleşik bir değişkendir. Yorumlayıcı yazılacak tek değer bu ise normalde None yazmaz. Bunu görmeyi çok istiyorsanız şunu deneyin:
>>> print fib(0)
None
Fibonacci serisini yazdırmak yerine, bunu bir liste şeklinde geri döndüren işlev yazmak basittir:
>>> def fib2(n): # n e kadar fibonacci serisi geri döndürür
... " n e kadar fibonacci serisi içeren liste geri döndürür"
... sonuc = []
... a, b = 0, 1
... while b < n:
... sonuc.append(b) # değeri listeye ekle
... a, b = b, a+b
... return sonuc
...
>>> f100 = fib2(100) # işlevi çağır
>>> f100 # sonucu yazdır
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Bu örnekte de bazı yeni Python özelliklerini görüyoruz:
return deyimi bir işlevden değer geri döndürür. Parametresi olmayan bir return deyimi None geri döndürür. Sona eren bir yordam (procedure) da None geri döndürür.
sonuc.append(b) ifadesi sonuç liste nesnesinin bir yöntemini çağırmaktadır. Bir yöntem bir nesneye `ait olan' ve nesne.yöntemAdı şeklinde adlandırılan bir işlevdir. nesne.yöntemAdı ifadesinde nesne herhangi bir nesne (bir ifade de olabilir) ve yöntemAdı da nesnenin türüne bağlı bir yöntemdir. Farklı veri türleri farklı yöntemlere sahiptirler. Farklı veri türlerinin ayni isimli yöntemleri olabilir. Sonraki bölümlerde anlatılacağı gibi, kendi veri türlerinizi ve yöntemlerinizi oluşturmanız mümkündür. Yukarıdaki örnekte görülen append() yöntemi liste nesneleri için tanımlıdır ve bir listenin sonuna yeni elemanlar ekler. Bu örnekte bu sonuc = sonuc + ifadesinin yaptığını yapar; ancak daha verimlidir.
__________________
Allah bir'di, s e n iki !
sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Etiketler
islev, python, tanimlama

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Forum Şartları


Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 03:51.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0
Sitemiz bir forum sitesi olduğu için kullanıcılar paylaşımlarını önceden onay almadan anında siteye yazabilmektedir. Bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yinede sitemizde yasalara aykırı unsurlar bulursanız iletisim adresine bildirebilirsiniz, şikayetiniz incelenip en kısa sürede gereken yapılır.

Bilgisayar ve İnternet

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136