33. repeat() bazı Python komutlarını gizler

Pek çok ders önce Reeborg'a bazı işleri nasıl tekrar ettirdiğimizi hatırlayın.

def turn_right():
    repeat(turn_left, 3)

Bu derste kendi repeat()fonksiyonumuzu nasıl tanımlayacağımızı göreceğiz. 


İki yeni komut

Aşağıdakini deneyin:

>>> for letter in "Reeborg":
...     print letter
...     
R
e
e
b
o
r
g

Reeborg kelimesindeki tüm harflerin tek tek yeni bir satırda yazılmasını Pyton'a söylemiş olduk. Eğer harflerin her birinin yeni bir satırda görüntülenmesini istemezsek virgül kullanırız.

>>> for letter in "Reeborg":
...     print letter,
...     
R e e b o r g

Oldukça düzenli! Bu herhangi bir string ile çalışır! Bunun yerine Python'un sayıları saymasını isteseydik? for döngüsünü range() fonksiyonu ile birlikte kullanabiliriz.

>>> for number in range(3):
...     print number
...     
0
1
2
>>> for number in range(14):
...     print number,
...    
0 1 2 3 4 5 6 7 8 9 10 11 12 13

Kendi kendinize benzer örnekleri deneyin!


repeat()'in tanımlanması

Artık kendi repeat()fonksiyonumuzu tanımlamak için gerekli malzemeye sahibiz:.

Neden bekliyoruz ki?

>>> def repeat(f, n):
...     for i in range(n):
...         f()
...
>>> def f():
...     print "It's fun!"
...    
>>> repeat(f, 3)
It's fun!
It's fun!
It's fun!

Aslında bu yaptığımız oldukça gelişmiş bir düzeyde Python programlamadır. repeat() fonksiyonuna kendiside bir fonksiyon olan bir parametre gönderdik. Bunu yapabilmek için fonksiyonun adından sonra parantez kullanmamalıyız. [Geriye dönün ve turn_right()'ı Reeborg'un dünyasında nasıl tanımladığımıza bir bakın.] Bunun yanında sayısal bir değer alan başka bir parametre (n) daha gönderdik. repeat()fonksiyonu tanımlandığında parametrelerden birisinin bir fonksiyon, diğerinin bir sayı olacağını Python dikkate almaz (ve bilmez de!).

Seçtiğim değişken isimlerinin (f, n, i) çok açıklayıcı olmadığına dikkat edin. Programcılar küçük döngülerde (az önceki gibi) veya küçük fonksiyonlarda tek harfli değişkenler kullanırlar böylece değişkenlerin kullanıldıkları yerler çok daha kolaylıkla görülebilir. Ancak değişkenlerin özel bir anlamı varsa onlara daha uzun ve açıklayıcı adlar vermek tercih edilir. Eğer buna inanmıyorsanız, 10. Tekrardan kesinlikle kaçının.dersine gidin ve dersin sonundaki Program okuma kısmını yeniden deneyin.

Belki de repeat() fonksiyonunu aşağıdaki gibi tanımlamalıydım:

def repeat(function, number_of_times):
    for number in range(number_of_times):
        function()

Deneyin!

Reeborg'un dünyasına gidin. İçinde repeat()'in en az iki kez kullanılmış olduğu herhangi bir alıştırmayı seçin. repeat()lerin yerine for döngüleri kullanarak çözüme ulaşın.

previousMany returns. - home - Çukulatalı kek tarifi next