Kombinasyon Yöntemleri

advertisement
Mantıksal Kontrol ve Döngü
Komutları
Prof.Dr. Bahadır AKTUĞ
JFM212 Python ile Mühendislik Uygulamaları
*Kaynakça bölümünde verilen kaynaklardan derlenmiştir.
Mantıksal Karşılaştırmalar




Python, koşullu karşılaştırma için hemen hemen bütün
programlama dillerinde olduğu gibi, "if/elif/else" bloklarını
sunar.
"If" komutundan sonra "True" veya "False" olarak
yorumlanabilecek "boolean" bir ifade yer almalıdır.
Boolean ifadeler:
Aşağıdaki ifadeler "False" olarak alınır:






Sıfır değerli tüm sayılar
False değeri,
Boş metin değişkenleri,
Boş listeler/demetler/sözlükler
None değeri
Bunların dışındaki her türlü değer/değişken "True" olarak kabul
edilir.
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
if / elif / else
"If" komutunun genel hali aşağıdaki gibidir. "elif" komutu istenildiği
kadar kullanılabilir.
if kosul-1:
Komut Bloğu
elif kosul-2:
Komut Bloğu
elif kosul-3:
Komut Bloğu
else:
Komut Bloğu
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Ternary if
Ternary "if" üç operant alan bir komuttur. Komutun genel hali aşağıdaki
gibidir.
max = a if a > b else b
Bu komutu normal "if" ile aşağıdaki şekilde de yazabiliriz.
if a > b:
max=a
Else:
max=b
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler





Python'da döngüler doğrudan diziler üzerinde (listeler, demetler,
sözlükler, metin tipi değişkenler) veya while/for yapıları ile yapılır.
Belirli bir sayıda döngü oluşturulacağı zaman "for" komutu veya
diziler tercih edilir.
Belirli bir koşula bağlı olarak döngü yapılacaksa, "while" komutu
tercih edilir.
Her iki komut da içiçe (nested) yapı şeklinde kullanılabilir.
Her iki döngü için de ayrıca kontrol komutları vardır:




continue
pass
break
Üzerinde döngü oluşturulan bir dizinin elemanları da bir dizi
şeklindeyse, birden fazla döngü değişkeni kullanılabilir.
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler
Doğrudan diziler ile:
Listeler, demetler, kümeler, sözlükler ve metin tipi değişkenler ile
döngü oluşturulabilir.
>>> renkler = set(["Sarı", "Mavi", "Yeşil"])
>>> for renk in renkler:
...
print(renk)
...
Sarı
Mavi
Yeşil
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler
Doğrudan diziler ile:
Listeler, demetler, kümeler, sözlükler ve metin tipi değişkenler ile
döngü oluşturulabilir.
>>> ders = "JFM212"
>>> for harf in ders:
... print(harf)
...
J
F
M
2
1
2
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
range()



Range komutu, belirlenen aralık dahilinde tamsayılardan oluşan bir
"range" nesnesi üretir.
Bu nesne, istenilen dizi türüne (liste, demet vb.) dönüştürülebilir.
Komutun genel hali:
range([başlangıç], bitiş[, artım])


"range" komutunun parametreleri tamsayı olmalıdır.
Python versiyon 3'den itibaren "range" komutu bir "iterator" nesnesi
döndürmektedir.
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
range() örnekleri:
>>> for i in range(5):
...
print(i)
...
01234
>>> list(range(0,10,3))
[0, 3, 6, 9]
>>> list(range(5,10))
[5, 6, 7, 8, 9]
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
enumerate()



"enumerate" komutu, girdi olarak verilen dizinin elemanları için sıralı
tamsayı endeks değerleri üretir.
"enumerate" komutu aralık dahilinde tamsayılardan oluşan bir
"enumerate" nesnesi üretir.
Bu nesne, istenilen dizi türüne (liste, demet vb.) dönüştürülebilir.
Komutun genel hali:

enumerate(dizi [, başlangıç endeksi=0])

"enumerate" komutunun parametreleri tamsayı olmalıdır.
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
enumerate() örnekleri:
>>> list(enumerate(choices))
[(0, 'döner'), (1, 'adana'), (2, 'iskender'), (3, 'mantı')]
>>> for index, item in enumerate(choices, start = 1):
...
print(index,item)
...
1 döner
2 adana
3 iskender
4 mantı
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
zip()




"zip" fonksiyonu birden fazla diziyi alarak
elemanlarını sıralı olarak eşleştirir.
"zip" komutu girdi dizilerin boyutları dahilinde bir
"zip" nesnesi üretir.
Bu nesne, istenilen dizi türüne (liste, demet vb.)
dönüştürülebilir. Komutun genel hali:
zip(a, b [, c, d, …])
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler için yararlı fonksiyonlar
zip() örnekleri
>>> zip(range(5), range(1,20,2))
[(0, 1), (1, 3), (2, 5), (3, 7), (4, 9)]
>>> colors = ['red', 'green', 'blue']
>>> vals = [55, 89, 144, 233]
>>> for col, val in zip(colors, vals):
...
print(col, val)
('red', 55)
('green', 89)
('blue', 144)
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler
for:
Belirli bir sayıda döngü oluşturulmak istendiğinde, aşağıdaki şekilde
kullanılır.
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngüler
while:


Döngünün sonlandırılması belirli bir koşula bağlı olduğunda, "while" yapısı
tercih edilir.
"while" komutundan sonra "True" veya "False" olabilen "boolean" bir ifade
bulunmalıdır.
>>> n = 3
>>> i = 0
>>> while i < n:
... print(i)
... i += 1
...
0
1
2
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngü içi Komutlar:
break


Döngünün (hem while hem de for) herhangi bir nedenle sonlandırılması
için kullanılır.
İçiçe (nested) döngüler olması durumunda en içteki döngü sonlandırılır.
>>> for harf in "JFM212":
...
if harf == 'M':
...
break
...
print(harf)
...
J
F
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngü içi Komutlar:
continue


Döngünün (hem while hem de for) herhangi bir nedenle döngünün başına
gidilmesi için kullanılır.
continue komutu kullanıldığında, döngü bir sonraki elemandan devam eder.
>>> for harf in "JFM212":
... if harf == 'F':
...
continue
... print(harf)
...
J
M
2
1
2
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Döngü içi Komutlar:
pass

Döngü içinde bir blokta komut kullanılması gerekiyor ama herhangi bir işlem
yapılması istenmiyorsa (hem while hem de for) "pass" komutu kullanılır.
>>> for harf in "JFM212":
... if harf == 'M':
...
pass
... print(harf)
...
J
F
M
2
1
2
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları

Kaynakça
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Wentworth, P., Elkner, J., Downey, A.B., Meyers, C. (2014). How to Think Like a Computer Scientist: Learning with Python (3nd edition).
Pilgrim, M. (2014). Dive into Python 3 by. Free online version: DiveIntoPython3.org ISBN: 978-1430224150.
Summerfield, M. (2014) Programming in Python 3 2nd ed (PIP3) : - Addison Wesley ISBN: 0-321-68056-1.
Summerfield, M. (2014) Programming in Python 3 2nd ed (PIP3) : - Addison Wesley ISBN: 0-321-68056-1.
Jones E, Oliphant E, Peterson P, et al. SciPy: Open Source Scientific Tools for Python, 2001-, http://www.scipy.org/.
Millman, K.J., Aivazis, M. (2011). Python for Scientists and Engineers, Computing in Science & Engineering, 13, 9-12.
John D. Hunter (2007). Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, 9, 90-95.
Travis E. Oliphant (2007). Python for Scientific Computing, Computing in Science & Engineering, 9, 10-20.
Goodrich, M.T., Tamassia, R., Goldwasser, M.H. (2013). Data Structures and Algorithms in Python,Wiley.
http://www.diveintopython.net/
https://docs.python.org/3/tutorial/
http://www.python-course.eu
https://developers.google.com/edu/python/
http://learnpythonthehardway.org/book/
Prof. Dr. Bahadır AKTUĞ – JFM212 Python ile Mühendislik Uygulamaları
Download