9 Temmuz 2013 Salı

TEMEL PROGRAMLAMA ELEMANLARI


TEMEL PROGRAMLAMA ELEMANLARI DÖNGÜLER


Bu makalede Temel Programlama Elemanlarından döngülerden bahsedeceğiz



 Döngüler ve Diziler 

Modern bilgisayarlar milyonlarca hatta talimatlar ikinci bir milyarlarca yapabilirsiniz. Şimdiye kadar açıklanan teknikler ile, bir ikinci bir kısmını fazla tek başına aday olacağını bir program almak zor olacaktır.
Pratik olarak, biz bilgisayar meşgul tutmak için talimatlar milyonlarca yazamıyor. Biz tekrar tekrar kod aynı blok üzerinde geri döngü, tekrarı gereken bir bilgisayar yararlı işler yapmaya devam etmek. Basit döngüler for, biz kısa bir süre sürebilir ve biz, daha sonra döngüler, kaplar hangi süre: bunu yapmanın iki Python açıklamada türü vardır Tablolar da .
İki ön hazırlıklar:
  1. Önceden tanımlanmış değişkenlerin değeri güncellenebilir. Bu döngüler özellikle önemli olacaktır. Öncelikle değişkenleri daha basit, sıralı durumda güncellenebilir nasıl izlemeniz için hazırlamak.
  2. Dizi tipi for döngüler kullanılır. Listesi: Biz temel bir dizi tipi bakacağız.
Sonra hep birlikte bu koymak. Bu, uzun bir kesittir. Yavaş ve dikkatli gidin.

Değişkenler güncelleme 

Bu fonksiyonu öz yineleme ile mümkündür, ama bu giriş ileri konu önlemek olacaktır.
Programları şimdiye kadar tanımlanmış ve değişkenler kullanılır, ancak erken kabuk örneklerde dışında biz mevcut değişkenlerin değeri değişmemiştir var.Şimdilik sadece örnek dosya updateVar.py içinde, bir örnek olarak seçilmiş, özellikle basit bir örnek göz önünde bulundurun:
 1
 2
 3
 4
 5 
  x = 3 # basit sıralı kodu
 y = x + 2 # iki değişken güncelleme
 y = 2 * y        
 x = y - x      
 baskı (x, y)    
Eğer sonucu tahmin edebilirsiniz? Programı çalıştırın ve kontrol edin. Eğer doğru tahmin etmedi özellikle, ne bir seferinde bir adım olur, anlamak önemlidir.Değişkenlere değişiklikler her deyimi ile yapılır ne kayıtlarını tutmak anlamına gelir.
Aşağıdaki tabloda, Yukarıdaki açıklamalarımızın kod untmalayım sayılarla adlandırılır. Her satırın çalıştırıldıktan sonra her değişkenin durumunu izleyebilirsiniz. Bir değişken tanımlanmamış olduğu bir çizgi gösterilir. Hat 1 sonra Örneğin çalıştırılır, bir değer x verilen, ancak y hala belirsiz olduğunu.Daha sonra y hat 2 bir değer alır. Sağdaki yorum neler olduğunu özetlemektedir. Hat 2 başladığında x 3 değerine sahip olduğu, x +2 3 +2 ile aynıdır.Doğrultusunda üç biz sol nedenleri değişken y hattı (idam tablonun bir önceki satırdan sonra kalanları) yürütme başladığında atama deyiminin sağ tarafındaki değişkenlerin değerleri kullanıyor olması, ancak atama kullanın Y için bir değişiklik ve bu nedenle Y, 10, güncel değeri, tabloda gösterilmiştir.Line 4 sonra y en son değeri (10 değil, başlangıç ​​değeri 5!) Kullanarak değişiklikler x,. Hat 5 elde edilen sonuç, x ve y değerleri teyit etmektedir.

ÇizgixyYorum
13-
235Önceki satırından x değerini kullanarak 5 = 3 +2,
3310Sağdaki 10 = 2 * 5, bir önceki hattan y değerini kullanın
4710Sağdaki 7 = 10-3, bir önceki satırından x ve y değerini kullanın
5710Baskı: 7 10

Yürütme sırasını her zaman tablodaki satır sırasını olacaktır. Bu basit sıralı kodda, bu da programın metin sırasını izler. Değişkenlerin geçerli değerlerini kayıtlarını tutmak, dikkatli, yürütme doğru sırayla bir program yürütme her satırı ardından, bilgisayar oynamak çağrılır. Yukarıdaki gibi bir tablo takip etmek için organize bir yoldur.

Bu liste Tipi 

Listesi keyfi veri dizileri sıralanmıştır. Listeler değiştirilebilir olduğu kadar tartışılan verilerin ilk tür: sırası uzunluğu değiştirilebilir ve elemanları yerine. Biz bir daha giriş kadar nesnelere listelerine değişiklikleri tartışma geciktirir. Listesi açıkça yazılabilir. Aşağıdaki örnekler Oku

  ['Kırmızı', 'yeşil', 'mavi']
 [1, 3, 5, 7, 9, 11]
 ['Aptal', 57, 'karışık', - 23, 'örnek']
 [] # Boş liste

 Aralığı Fonksiyon, Bölüm 1 

Temel biçimi keyfi veri kare dirsek-kapalı, virgülle ayrılmış listesi.
Otomatik olarak düzenli aritmetik dizileri oluşturmak için kullanılabilecek bir dahili fonksiyonu dizi var. Kabuğu'nda aşağıdaki deneyin:
  listesi (aralık (4))
 listesi (aralık (10))
Kullanım için genel modelidir
aralığı (sizeOfSequence)
Gerektiğinde Bu sözdizimi, tamsayılar, her seferinde bir oluşturur . Bir kez bir liste olarak tüm sonuçları görmek isterseniz, yukarıdaki örneklerde olduğu gibi bir listeye dönüştürebilirsiniz. Elde edilen dizi 0 ile başlar ve parametre önce sona erer. Biz Python 0 başlamak için iyi nedenler vardır göreceksiniz.Dizi tarafından üretilen dizilerin önemli bir özellik (n) elemanları toplam sayısı n olmasıdır. Sıra numarası n, kendisi atlar, ancak bunun yerine 0 içerir.
Daha fazla parametre ile, aralık fonksiyon dizilerinin çok daha geniş bir çeşitli oluşturmak için kullanılabilir. Elaborations tartışılmıştır Rastgele Renkler ve En Genel aralığı Fonksiyon .

Bilgisayar jargonunda, sadece gerektiği gibi bir dizi üretim değerleri tembel değerlendirme denir.

Döngüler için temel 

Kabuğu'nda aşağıdaki deneyin. Shell yanıt önce devam satırları bir dizi olsun. İkinci ve üçüncü satırlarda girinti emin olun. (Bir düzenleme penceresinde girinti otomatik olarak) yanıt vermek için Shell almak için sonunda başka bir boş bir satır (Sadece Enter tuşuna basın.) Girdiğinizden emin olun...:
 1
 2
 3 
  [1, 2, 3] saymak için: 
     baskı (sayısı) 
     print ('Evet' * sayısı) 
Bu döngü için bir olduğunu. Bu bir değişken adı (bu durumda saymak), sözcüğü, bazı dizi ve son bir iki nokta üst üste için ile başlığı başlangıç ​​vardır.Fonksiyon tanımlaması ve diğer başlığı hatları olduğu gibi, satırın sonunda kolon tabloların sürekli girintili blok döngüsü için tamamlamak için takip gösterir.
sırayla ürün için:
tekrar ifadeleri girintili, madde kullanabilir
Hatlarının bloğu bu nedenle bu örnekte girintili bloğundaki iki çizgi üç kere tekrar edilir, sırası her eleman için bir kez tekrarlanır. Ayrıca (burada saymak)pozisyonunda değişken blok kullanılabilir, ve içinden her zaman 2 sonra, 1 döngü sayısı ile ilk kez çok, sırayla bir sonraki değeri alır ve son olarak 3.Çıkışta tekrar bakın ve bu sıra uygun görüyoruz. Daha detaylı bir dizi tabloda, bilgisayar oynayan verilmiştir:

Çizgisaymakyorum
11Listenin ilk elemanı ile başlar
211 yazdırma
31'Evet' * 1 'evet'; baskı evet
12Listede sonraki öğeye saymak değiştirmek
222 yazdırmak
32Baskı yesyes; 'evet' * 2 'yesyes' olduğu;
13Listede sonraki öğeye saymak değiştirmek
23baskı 3
33Baskı yesyesyes,, liste ile yapılır 'evet' * 3 'yesyesyes' olduğu
başlığı döngü için iki amaca hizmet ettiği adım adım yürüterek, not:
  • Başlığı çizgi yürütür her zaman, bu dolaylı bir öğe yerine kullandığınız değişken adı için yeni bir değer atar.
  • Ilerleme çizgisinin her yürütme sonra, girintili bloktaki ifadeler genellikle başlığı atanan değişken için yeni değer yararlanarak, yürütülür.
Dikkat 
 Altında döngü başlığı hattı ve girintili vücut için her tekrar tekrar yürütülür ve her yürütüldüğünde zaman dizisi halinde, ayrı bir liste halinde gerekir, çünkü bir döngü ile bilgisayar oynarken, aynı satır numaraları, tekrar tekrar yeniden görünür ve olabilir!
Tercüman döngü bloğu olacaktı ne kadar bilmiyordum: Bir döngü girmek için Shell kullanıldığında, tercüman boş bir satır girdikten sonra kadar cevap bekledi bir nedeni vardı! Boş satır döngü blok ile yapılır tercüman için bir sinyaldir.
Aşağıdaki örnek program for123.py bak, ve çalıştırın.

  [1, 2, 3] saymak için:
     baskı (sayısı)
     print ('Evet' * sayısı)
 print ('sayma Bitti.')
 ['kırmızı', 'mavi', 'yeşil'] renk için:
     baskı (renkli)

Bir dosyasında, tercüman hemen yanıt gerekmez yerde, boş bir satır gerekli değildir. Bunun yerine, girintili blok ile bir işlev tanımı veya başka bir biçim olduğu gibi, de için-döngü başlığı ile sıraya tarak ile girintili blok geçmiş olmak belirtiniz. Bu nedenle yukarıdaki kodda, "Sayma Bitti." Ilk döngü tüm tekrarlar tamamlandıktan sonra bir kez yazdırılır. Yürütme başka bir basit döngü ile sona erer.
Bir fonksiyonu girintili blok olduğu gibi, doğru girinti almak önemlidir. Yukarıdaki kod Alter, dördüncü satır girintili şekilde:

  [1, 2, 3] saymak için:
     baskı (sayısı)
     print ('Evet' * sayısı)
     print ('Bitti sayma.') # değişti çok girintili
 ['kırmızı', 'mavi', 'yeşil'] renk için:
     baskı (renkli)

Değişikliği tahmin ve test için kodun yeniden çalıştırın.
Döngüler programlama en önemli özelliklerinden biridir. Döngü sözdizimi için yaratıcı sorunları (yerine sadece bir gösteri bakmak) çözmek için bunları kullanarak, oldukça basit olsa da bir giriş düzeyinde birçok öğrenciler için en büyük zorluklardan biridir. Öğrenme eğrisi basitleştirmek için bir yolu genel durumları ve desenler sınıflandırmak ve onlara isimler vermektir. En basit desen biri, bugüne kadar döngü örnekleri için tüm döngü-her biri için basit gösterilmiştir: sırası her öğe için, onunla bir şey aynı tür yapmak. Mor Pythonic pseudocode olarak şunları söyledi:
sırayla ürün için:

Geçerli madde ile bir şey yapmak
(Her biri için tarafından yerine olan için ise İngilizce gibi daha olurdu, ama kısa versiyonu Python tarafından kullanılan biridir.)
Yukarıdaki döngü örnekler için, bir şey listedeki her öğe ile ilişkili olduğu yazdırılır. Baskı kesinlikle "yaptığımız bir şey" bir formu, ama için olanakları "bir şeyler yapmak" tamamen genel!
Biz ilk örnek revize döngü-her biri için bir kullanabilirsiniz madlib.py gelen kodu hatırlayın.:

  addPick ('hayvan', userPicks)
 addPick ('gıda', userPicks)
 addPick ('şehir', userPicks)

Hattın geri kalanı tekrar ederken her satır, işaret olarak kullanılan dize değişen dışında, tam olarak aynı şeyi yapıyor. Bu için-her desen, ama biz ipuçları geldiği dizisi listelemek için gereken alternatif okuyun.:

  # başlığı: ['hayvan', 'gıda', 'şehir'] 'de işaret için
     addPick (işaret, userPicks) # vücut

Bu özelliği gören grup fo örneklerden soyut genel desen yeteneği gerektirir. Bu etkin döngüler kullanmak için gereklidir.
Bu küçük değişiklik ile tüm programı görmek veya çalıştırmak isterseniz, örnek madlibloop.py bakın. Ortak bir adlandırma kuralı programda kullanılır: tüm unsurları ile liste çoğul ipuçları ile adlandırılır iken Listedeki her öğe, bir ipucudur. Daha sonra durumlarda bir liste adı listenin tek bir öğe için kullanılan değişken adı ve çoğul olarak yapmak.
İki program sürümleri arasındaki dönüşüm mantığı Not: veri alternatif adet döngüsü başlığı için listede toplanır. Tek bir değişken adı (burada işaret seçti) işlenen mevcut seçim başvurmak için bir yer tutucu olarak başlık kullanılan ve vücudun açık veri değerleri yerine bu değişkeni işaret anlamına gelir orijinal her zaman dahil no- döngü sürümü.
Bu yürütme başlığı ve vücut arasında ileri ve geri gidiyor nasıl işlemlerin sırası, anlamak önemlidir. İşte detaylar:
  1. ilk kez başlığı: değişken işaret 'hayvan', dizinin ilk elemanı olarak ayarlanır
  2. vücut ilk kez: işaret şimdi 'hayvan' olduğu için, etkili addPick ('hayvan', userPicks) yürütmek (bu anahat işlev çağrısı Ayrıntıları atla.)
  3. ikinci kez başlığı: değişken işaret 'gıda', dizinin bir sonraki elemanı olarak ayarlanır
  4. vücut ikinci kez: işaret şimdi 'gıda' olduğu için, etkili bir ('gıda', userPicks) addPick yürütmek
  5. üçüncü kez başlığı: değişken işaret dizisinin bir sonraki (son) öğesi, 'şehir' olarak ayarlanır
  6. vücut üçüncü kez: işaret şimdi 'şehir' olduğu için, etkili addPick ('şehir', userPicks) yürütmek
  7. başlığı yapılır: sırayla daha fazla unsurlar olduğundan, döngü için tüm yapılır ve yürütme ondan sonra deyimi (girintili değil) ile devam edecektir.
Bu örnekte, veri değerleri sadece birkaç belirli değişmezdir ve tekrarlanan sadece bir satır bulunmaktadır. Bu nedenle döngü için bir de kullanımı büyük bir anlaşma değil, ama basit bir örnek yapar! Özgün deli lib örnek değiştirmek için, ve daha birçok hissi veren bir hikaye vardı, bu döngü inşaat çok handier olacaktır. Ayrıca bu revizyon daha da iyi sağlayacaktır Revize Mad Lib Programı biz dize işleme hakkında daha fazla tanıtmak sonra,.

Desen Döngü Egzersiz 

Örnek dosya types1.py Bu kodu aynı etkiye sahip olacaktır türüne işlevine bir çağrı içeren bir dosya types2.py döngü-her biri için bir iki satır yazmak:
 baskı (2, tipi (2))
 baskı (3.5, tipi (3,5))
 baskı ([], tipi ([]))
 baskı (Doğru, tipi (Doğru))
 baskı (Yok, tipi (Yok))
Kendinizi kontrol etmek için her iki sürümü de yürütün. 

Üç Egzersiz 

Aşağıdaki fonksiyonu tamamlayın. Bu başlangıç ​​kod tripleStub.py bulunmaktadır. Yeni adı triple.py kaydedin. Bir örnek belgelere dizesinde verilen şekilde unutmayın. Bu Shell işlevinin kullanımını simüle eder. Bu ortak bir kuralıdır:

  def tripleAll (nums):
     '' 'Baskı listede nums sayıları her üç katına.
 >>> TripleAll ([2, 4, 1, 5])
 6
 12
 3
 15
 >>> TripleAll ([-6])
 -18
 '' '

Başlığı döngü için listede unsurları aynı türdeki tüm değildir.

Bu döngü vücutta iki kez döngü değişkeni kullanmanız gerekir.

Basit Tekrar Döngü 

Her şeyden örnekler döngü başlığı için de değişkenin değeri kullanılır. Bir döngü kullanım için daha basit sadece aynı şeyi kez belirli bir sayıda tekrarlamak istediğinizde olduğunu. Bu durumda, dizinin sadece uzunluğunda değil, bireysel unsurları önemlidir. Biz zaten aralığı fonksiyonu elemanlarının belirli bir sayı ile bir dizi üretmek için bir kolaylık yol sağlar gördük. Örnek program repeat1.py okuyun ve çalıştırın:
  '' 'Basit bir tekrar döngüsü'''

 : aralığında i (10) için
     print ('Merhaba')
Bu durumda, i değişkeni için döngü gövdesinde kullanılmaz.
Kullanıcı tekrar sayısını seçebilirsiniz. Örnek program repeat2.py okuyun ve çalıştırın:
  '' 'Tekrar sayısı kullanıcı tarafından belirtilir.'''

 n = int (input ('tekrar sayısını girin:'))
 : aralığında i (n) için
     print ('Bu tekrarlayan var!')

Ardışık Modifikasyon Döngüler 

Ben öğeleri adı verilen öğelerin bir listesi var varsayalım, ve ben her öğe ve gittikçe sayısı onları yazdırmak istiyorum. Örneğin eğer öğe ['kırmızı', 'turuncu', 'sarı', 'yeşil'], ben çıkış görmek istiyorum:
  1 kırmızı
 2 turuncu
 Sarı 3
 4 Yeşil
Bu geliştirmek için aşağıdaki düşünce süreci hakkında bilgi edinin:
Kendimi numaraları ihmal izin verirseniz, bu kolaydır: Listede herhangi bir öğe için, ben ile işleyebilir
  baskı (madde)
ve ben sadece listede gezinmek ve her biri için bunu yapmak. (Kopyalayın ve isterseniz çalıştırın.)
  öğeleri = ['kırmızı', 'turuncu', 'sarı', 'yeşil']
 öğeler madde için:
     baskı (madde)
Açıkça numaraları ile daha ayrıntılı bir versiyonu bir kıvamda bir desene sahiptir, her bir hattı en az şekildedir:
numarası öğe
ancak sayı her zaman değiştirir, ve sayıları öğeleri listesinden düz gelmiyor.
Bir değişken değiştirebilirsiniz, bu nedenle bir değişken sayıda olması mantıklı, bu yüzden doğru değiştirmek yapmak potansiyeline sahiptir. Biz kolayca doğru ilk kez almak ve daha sonra aynı sayıda tekrar olabilir. Örnek program numberEntries1.py okuyun ve çalıştırın:
  '' 'Bu sürüm numarası değişmez.'''

 öğeleri = ['kırmızı', 'turuncu', 'sarı', 'yeşil']
 sayısı = 1
 öğeler madde için:
     baskı (sayı, madde)
Fikir saymak beri Tabii ki bu, hala tam olarak doğru değil. Ilk kez sayı basıldıktan sonra, aşağıdaki kodda olduğu gibi, döngü içinde hemen sonraki olmak, 2 için değiştirilmesi gerekiyor: örnek program numberEntries2.py okuyun ve çalıştırın:
  '' 'Listeden kötü sayılı girişleri yazdırır'''

 öğeleri = ['kırmızı', 'turuncu', 'sarı', 'yeşil']
 sayısı = 1
 öğeler madde için:
     baskı (sayı, madde)
     sayısı = 2 # baskı 1 sonra 2 değişecektir
Biz 3 asla çünkü bu, daha yakın, ama yine de tam olarak doğru değil! Biz döngü içinde her zaman çalışacak sayısı değerini değiştirmek için bir yol gerekir.Sayma desen muhtemelen bir sayı diğerine gitmek konusunda bilinçli sanmıyorum aslında çok basit, basit: Her ardışık sayısı bir önceki sayısından bir fazlasöyleyerek desen tanımlayabiliriz. Bu daha önce olduğundan daha bir daha bu yüzden biz numarasını değiştirmek gerekiyor. Bu ihtiyacımız olan ek bir fikir!Örnek program numberEntries3.py almak için döngü vücudun son satırı değiştirin. Ayrıca görmek ve çalıştırın:
  1
 2
 3
 4
 5 
  öğeleri = ['kırmızı', 'turuncu', 'sarı', 'yeşil']
 sayısı = 1                                   
 # baskı numaralı girişleri: öğeleri öğe için
     baskı (sayı, madde)                      
     sayı = sayı + 1 # önemli eklendi çizgi
Bu yürütme sırasında adım adım değişiklikleri anlamak önemlidir. Aşağıda bilgisayar oynama sonuçlarını gösteren bir tablodur. Satır numaraları, çünkü döngü sonunda etrafında atlama, kontrol akışını takip etmek için burada çok daha önemlidir.
Yine altında döngü başlığı hattı ve girintili vücut için her tekrar tekrar yürütülür çünkü oyun bilgisayarın tablonun Hattı sütununda program satır numaraları, tüm sıralı unutmayınız.
Her zaman hat 1 yorum gösterilen değeri olmadığından kompakt için, değişken öğeleri, kendi sütununda almaz:
çizgimaddesayıyorum
1--['kırmızı', 'turuncu', 'sarı', 'yeşil'] öğeleri ayarlamak
2-1
3'Kırmızı'1sırasında ilk olarak madde ile başlar
4'Kırmızı'1Baskı: 1 kırmızı
5'Kırmızı'22 = 1 +1
3'Turuncu'2sırayla bir sonraki elemana üzerine
4'Turuncu'22 turuncu baskı
5'Turuncu'33 = 2 +1
3'Sarı'3sırayla bir sonraki elemana üzerine
4'Sarı'33 sarı baskı
5'Sarı'44 = 3 +1
3'Yeşil'4sırayla son öğe için
4'Yeşil'44 yeşil yazdırmak
5'Yeşil'55 = 4 +1
3'Yeşil'5dizisi yapılır, son döngü ve kod
Sayısının son değer kullanılır, ama Tamam asla. Ne istediğimizi basılı alır.
Dikkatli bir şekilde geçmesi ve tablodaki her giriş anlamını anlamak ve emin olun sıralama ve değişiklikleri her adımda her girişin tam konumunu nedeni nedeni! Özellikle nasıl ve neden birbirini izleyen her satır için satır numarası her zaman bir önceki satır birden fazla değil görmek. Özellikle, numaralı çizgiler aynı sırayla tabloda birden fazla yerde tekrar edilebilir bakın. Bu anlayış olmadan bilgisayar kendinizi oynamak ve gerçekten döngüler anlamak mümkün olmayacaktır.
Bu kısa örnek döngüler için önemli bir sürü fikir göstermektedir:
  • Döngüler çeşitli değişkenler içerebilir.
  • Bir değişken değiştirebilirsiniz bir yolu döngü başlık için bir de değişken olmak gereğidir, otomatik olarak döngü listesi için değerleri geçer.
  • Değişkenleri bir döngü içinde değişmesi için başka bir yol izleyen değişiklikler neden döngü içinde değişken değiştirir açık bir bildirimde olmaktır.
Yukarıda numarası gibi bir değişkenin ardışık değişiklik ile döngüler için genel bir model vardır:
  1. Değiştirilecek değişkenler döngü önce başlangıç ​​değerleri (yukarıdaki örnekte hat 1) gerekir.
  2. Başlığı döngü tekrarı neden olur. Bir için-döngü, tekrar sayısını liste büyüklüğü aynıdır.
  3. Döngü gövdesi genellikle tekrar tekrar yapılan istediğiniz (line 4 yukarıda baskı gibi) "bir şey yok".
  4. Değiştirmek gerekiyor değişken bir sonraki değeri (yukarıdaki örnekte hattı 5) için dönüştürülmüş olur döngü, üzerinden bir sonraki kez kurmak için döngü gövdesi içinde kod vardır.
Bu bilgiler bir kod anahat konabilir:
Değiştirilecek değişkenleri başlatılamıyor
Döngü tekrar kontrol başlığı:
Mevcut değişkenler istenen eylemi yapmak
Eylem bir sonraki için hazır olması değişkenleri değiştirmek
Size bu desen karşılaştırırsanız için-her ve basit tekrar döngüler Döngüler için temel , orada örnekler basit olduğunu görüyoruz. Döngü olsa bir sonraki hazırlanmak için gerekli açık bir değişken değişiklik vardı. Biz bir ardışık değişiklik döngü gibi en son, daha genel desen sevk edecektir.
Fonksiyonlar bir program kullanım ve yeniden kullanım için bir fikir kapsüllenmesinde kullanışlı ve aynı zamanda test için. Biz numarasına bir liste bir fonksiyon yazmak ve kolayca farklı veri ile test edebilirsiniz. Örnek program numberEntries4.py okuyun ve çalıştırın:
  '' 'Herhangi bir liste numara girişleri için bir işlevini kullanın'''

 def numberList (öğe):
     '' 'Için numaralı bir liste öğeleri, her öğe yazdırın.'''
     sayısı = 1
     öğeler madde için:
         baskı (sayı, madde)
         sayı = sayı + 1

 def main ():
     numberList (['kırmızı', 'turuncu', 'sarı', 'yeşil'])
     print ()
     numberList (['elma', 'armut', 'muz'])

 Ana ()
Adım adım, tüm sırası takip edebilirsiniz emin olun! Bu program işlev çağrıları ve döngüler için hem değişen, şimdiye kadar kontrolü en karmaşık akış vardır.
  1. Önceki satır tanımları olduğu için yürütme, çok son satırı ile başlar
  2. Daha sonra ana yürütülmesi başlar.
  3. NumberList için ilk çağrı etkili biçimsel parametre ayarlar
      öğeleri = ['kırmızı', 'turuncu', 'sarı', 'yeşil']
    
    ve fonksiyon sadece numberEntries3.py takip edilen akışı gibi yürütür. Bu süre, ancak, yürütme ana döner.
  4. Boş bir satır ana ikinci satırda yazdırılır.
  5. NumberList için ikinci çağrı farklı bir gerçek parametre ['elma', 'armut', 'muz'], bu da sonuç olarak biçimsel parametre bu kez ayarlar vardır
      öğeleri = ['elma', 'armut', 'muz']
    
    ve fonksiyon numberEntries3.py olduğu gibi benzer bir desen çalıştırır ancak döngü boyunca farklı veri ve bir daha az zaman.
  6. Yürütme ana döner, ama yapmak için daha fazla bir şey yok.

Birikim Döngüler 

Bir liste, nums tüm numaraları eklemek istediğinizi varsayalım. Bize bu baştan bir fonksiyonu olarak, bu nedenle aşağıdaki kodu okuma planı olsun. Biz ile başlayabilirsiniz:
  def sumList (nums):
     '' 'Nums içinde sayıların toplamı dön.'''
Hemen ne göremiyorsanız, yapmak için yararlı bir şey somut bir durumda yazmak, ve tam ayrıntılı olarak, bunu çözmek nasıl düşünüyorum. Nums [2, 6, 3, 8] ise, büyük olasılıkla hesaplarız:
2 + 6 8
8 + 3 11'dir
11 + 8 19 olduğu
19 döndürülecek cevaptır.
Liste oldukça uzun olabilir yana, bir döngü gerekir. Eğer döngü içinde aynı ifadeleri yeniden tutmak, böylece bu nedenle bir model bulmak gerekir. Açıkçası sırayla sırayla her numara kullanıyor. Ayrıca bir sonraki adımda yeniden her adımda bir miktar üretir. Daha önce hiç toplamı var ve listeden iki unsur kullanın: desen farklıdır, ancak, ilk satırda, 2 +6 8'dir. 2 bir önceki toplamı eklenmez.
Elle hesaplama yapmak için en kısa yolu olmasa da, 2 0 + 2 bir toplamıdır: Biz desen tutarlı yapmak ve hesaplayabilirsiniz:
0 bir miktar ile başlar
0 + 2 2'dir
2 + 6 8
8 + 3 11'dir
11 + 8 19 olduğu
19 cevaptır.
Daha sonra, her toplamının ikinci bölümü listesi, nums arasında bir sayıdır. Biz liste sayısı gelen numarayı ararsanız, döngü temel hesaplama hat olabilir
  nextSum = toplam + num
İşin püf noktası döngü içinde kod bir sonraki zaman aynı hat kullanmaktır. Bir sonraki geçişte toplamı olur tek seferde nextSum ne demek. Bu işlemek için bir yoludur:
  toplam = 0
 nums içinde num için:
     nextSum = toplam + num
     toplam = nextSum
Eğer desen görüyor musunuz? Yine öyle
başlatma
döngü başlığı:
tekrarlanması için ana iş
Bir sonraki döngüde bir süre için hazırlık
Bazen iki genel döngü adımlar kombine edilebilir. Bu, böyle bir durumdur. NextSum sadece bir kez kullanılan bu yana, biz sadece kullanıldığı yerde değeri(toplamı) yerine ve kolaylaştırabilirsiniz:
  toplam = 0
 nums içinde num için:
     toplam = toplam + num
böylece return deyimi ile tüm işlevi vardır:
  1
 2
 3
 4
 5
 6 
  def sumList (nums):
     '' 'Listesinde nums içinde sayıların toplamı dön.'''
     toplam = 0
     nums içinde num için:
         toplam = toplam + num
     toplam geri
Örnek program sumNums.py fonksiyonu (girintili değil) test etmek için sonuna eklenir aşağıdaki satırı ile yukarıdaki kodu vardır. SumNums.py çalıştırın.
  baskı (sumList ([5, 2, 4, 7]))
Burada kullanılan desen kesinlikle başarılı değişiklik (toplamı değişkenin) 'dir. Burada kalıp bu sürümü için bir daha özel ad vermek için yararlıdır. Bubirikimi bir yol izler:
dizisi hiçbiri (burada = 0 Özetle) dahil etmek birikimi başlatmak
sırayla ürün için:
birikim son değeri ile madde birleştirerek birikimi yeni değeri = sonuç
Bu model numaraları ekleyerek yanı sıra diğer birçok durumlarda çalışacak.

0 yorum:

Yorum Gönder