python ile programlamaya giri - ijshbahtiyar/dersler/icerik/python-ders3.pdfprogramlamaya giriş...
TRANSCRIPT
Python ile Programlamaya GirişDERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR
1
Klavye Girişi
! Python’a durup beklemesini ve klavyeden girilecek olan verileri okumasını anlatabiliriz.
! Bunu input() komutu ile yaparız. ! input() fonksiyonu bize string olarak sonuç verir.
2
isim = input(‘Adınız nedir? ')print(‘Hoşgeldin', isim)
Python 3 aşağısında bir versiyon kullananların raw_input() fonksiyonu
kullanmaları gerekmektedir.
Klavye Girişini Değiştirmek
! Örnek olarak klavyeden bir rakam girmesini isteyelim sonra bu rakamı değiştirmek istiyor olalım bunu nasıl yaparız?
3
Klavye Girişini Değiştirmek
! Örnek olarak klavyeden bir rakam girmesini isteyelim sonra bu rakamı değiştirmek istiyor olalım bunu nasıl yaparız?
4
inp = input(Sayı giriniz?')usf = int(inp) + 1print(‘Girdiğiniz sayının bir fazlası', usf)
Örnek
! Santigrad derece cinsinden verilmiş bir sıcaklığı Fahrenheit birimine çevirmek istediğimizde bu sayıyı 1.8 ile çarptıktan sonra 32 eklememiz gerekmektedir.
! Formülümüz: ! F = C * 1.8 +32.00
! Python’da klavyeden girilen bir sıcaklığı fahrenheit cinsine çeviren program yazınız.
5
Yapmadan Önce!!
! Eğer isterseniz bu programı bir dosya halinde yazabilirsiniz. ! Bunun için not defterini açalım. ! Programın başına #! python3 ekleyelim böylece python 3 versiyonu ile
çalışacağımızı anlayacaktır. ! Programımızı yazıp kaydederken ilkprogram.py olarak kayıt edelim. ! Idle ile açıp f5 tuşuna basalım.
6
7
Yorum eklemek
! Bazen program yazarken yorum yapmak isteyebiliriz. Böylece python buradaki eklediğimiz yorumları programın bir parçası olarak almaz ve işleme koymaz.
! Sebepleri: ! İleride tekrar geri döndüğümüzde hatırlamak istediğimiz önemli yerleri kolayca görmemizi
sağlar. ! Programı kimin yazdığı veya ne zaman yazdığı ile ilgili detaylı bilgiler sunabiliriz. ! Veya programın bir kısmını çalıştırmamak isteyebiliriz (geçici bir süre).
! Python a yorum eklerken # işaretini kullanırız.
8
9
Python da hata mesajları
! Program yazarken hepimiz hata mesajı ile karşılaşmışızdır. ! Bu hata mesajlarının amacı programın neresinde, ne türde bir hata
yaptığımızı bize bildirmesidir. ! Hata mesajı ile karşılaştığımızda yapmamız gereken, mesajın bize ne
anlatmak istediğini çözmeye çalışmaktır.
10
• Genel olarak iki ayrı şekilde inceleyebiliriz. • Değişken ismine ilişkin hatalar NameError • Sözdizimine ilişkin hatalar: SyntaxError • Ayrıca: ValueError, IOError vs…
Python da hata mesajları! Try, except komutları ile bu hata mesajlarından
kurtulabilir, kullanıcıya doğru veriyi girmesini söyleyebiliriz. Çalışma prensibi şu şekildedir
try:
yapmak istediğimiz komutların denenmesi
except HATASEBEBİ:
HATA MESAJI.
11
Koşula bağlı durumlar! Python’da ve tüm programlama dillerinde koşula bağlı durumlar oldukça önemli bir
konudur ve programlamanın temelini oluşturmaktadır.
! Koşula bağlı durumlara en basit örnek olarak e-postamızı verebiliriz.
! Kullanıcı adı ve şifresini girdiğimizde şifremiz doğru ise bizi postaya yönlendirir, yanlış ise hata mesajı verir.
! Bu durumlar için if-else-elif deyimleri kullanılır.s
12
Koşula bağlı durumlar 13
Şifre gir
Doğru mu
Maile yönlendir
Hata mesajı ver
Evet
Yanlış
Koşula Bağlı Durumlar! Şimdi bir örnek yapalım,
! Kullanıcı klavyeden bir sayı girsin. ! Eğer 10 dan küçükse 10 dan küçük ! Eğer 20 den büyükse 20 den büyük şeklinde çıktılar versin ! Son olarak «bitti» şeklinde çıktı versin.
14
Koşula Bağlı Durumlar! Şimdi bir örnek yapalım,
! Kullanıcı klavyeden bir sayı girsin. ! Eğer 10 dan küçükse 10 dan küçük ! Eğer 20 den büyükse 20 den büyük şeklinde çıktılar versin ! Son olarak «bitti» şeklinde çıktı versin.
15
Karşılaştırma Operatörleri! Boolean tipi olarak isimlendirilen ifadeler Evet ve
hayır olarak sonuç döndürürler ve bu sonuçlar sayesinde programın akışını kontrol ederiz.
! Boolean tipi ifadeler karşılaştırma operatörleri kullanarak Evet/Hayır veya Doğru/Yanlış şeklinde sonuç üretirler.
! Karşılaştırma operatörleri yazdığınız değişkene bakıp evet veya hayır şeklinde sonuç üretir değişkeni değiştirmez!
16
Python Anlamı
< Küçüktür
<= Küçük Eşittir
== Eşittir
>= Büyük Eşittir
> Büyüktür
!= Eşit Değildir
Karşılaştırma operatörleri: Örnek 17
x = 5if x == 5 : print('5 e eşit')if x > 4 : print(‘4 ten büyük')if x >= 5 : print(‘5 e büyük veya eşit')if x < 6 : print(‘6 dan küçük') if x <= 5 : print(‘5 e küçük veya eşit')if x != 6 : print(‘6 ya eşit değil')
5 e eşit
4 den büyük
5 e büyük veya eşit
6 dan küçük
5 e küçük veya eşit
6 ya eşit değil
Tek yönlü seçimler? Ödev:! Şu an için if (eğer) ifadesini kullanarak
tek yönlü seçimler yaptık.
! Farklı seçimler için farklı if ler kullandık ama hepsinin seçeneği tekti
! Şöyle bir durum düşünelim klavyeden girilen sayının 5 e eşit olması durumunda ‘5 e eşittir.’ yazısı yazan ancak farklı bir rakam girilir ise ‘5 değildir’ hatası veren bir program yazabilir miyiz?
18
x == 5 ?Evet
Hayır 5 e eşittir
5 e eşit değildir
Program sonu
Girintileme
! Python da girintileme sistemi çok önemlidir. Bir ifadenin veya döngünün içerisinde olup olmadığımızı girintileme ile python a anlatırız.
! İf veya for ifadelerindeki ( : ) işaretinden sonra girinti yaparak if veya for ifadesinin içerisinde işlem yapacağımızı anlatırız.
! İfade içerisinde yapacağımız işlemler bittikten sonra girintiden geri çıkarız. Böylece if veya for işlemini bitirmiş oluruz. ! Boş satırları python önemsemez. ! Yorum yazdığımız kısımı da python önemsemez.
19
20increase / maintain after if or for
decrease to indicate end of block
x = 5 if x > 2 : print('2 den büyük') print(‘Halen büyük') print(‘2 ile işimiz bitti')
for i in range(5) : print(i) if i > 2 : print(‘2 den büyük') print(‘işimiz bitti', i) print(‘Program sonu')
Blokların başlangıcı ve sonunu inceleyelim21
x = 5if x > 2 : print('2 den büyük') print(‘Halen büyük')print(‘2 ile işimiz bitti')
for i in range(5) : print(i) if i > 2 : print(‘2 den büyük') print(‘işimiz bitti', i) print(‘Program sonu')
İç içe Kararlar 22
x = 42if x > 1 : print(‘1 den büyük') if x < 100 : print('100 den küçük') print(‘Program Sonu')
x > 1
1 den büyük
x < 100
100 den küçük
Program Sonu
Evet
Evet
Hayır
Hayır
Çift Yönlü Kararlar:! Bazen istediğimiz durumun
doğru veya yanlış olması durumunda ayrı çıktılar istiyor olabilir.
! Bunu yol ayrımı gibi düşünebiliriz, bir yönü seçeceğiz ikisini aynı anda seçemeyiz.
23
x > 2
Büyük
EvetHayır
x = 4
Büyük değil
Program sonu
Çift Yönlü Kararlar: 24
x > 2
Büyük
EvetHayır
x = 4
Büyük değil
Program sonu
x = 4
if x > 2 : print(‘Büyük')else : print(‘Büyük değil')
print(‘Program sonu')
Çift Yönlü Kararlar: 25
x > 2
Büyük
EvetHayır
x = 4
Büyük değil
Program sonu
x = 4
if x > 2 : print(‘Büyük')else : print(‘Büyük değil')
print(‘Program sonu')
Çok yönlü koşullar 26
if x < 2 : print(‘Küçük')elif x < 10 : print(‘Orta')else : print(‘Büyük')print(‘Program Sonu')
x < 2 Küçükevet
hayır
Program sonu
x < 10 Orta
Büyük
hayır
evet
Çok yönlü koşullar 27
X=0if x < 2 : print(‘Küçük')elif x < 10 : print(‘Orta')else : print(‘Büyük')print(‘Program Sonu')
x < 2 Küçükevet
hayır
Program sonu
x < 10 Orta
Büyük
hayır
evet
Çok yönlü koşullar 28
X=5if x < 2 : print(‘Küçük')elif x < 10 : print(‘Orta')else : print(‘Büyük')print(‘Program Sonu')
x < 2 Küçükevet
hayır
Program sonu
x < 10 Orta
Büyük
hayır
evet
Çok yönlü koşullar 29
X=20if x < 2 : print(‘Küçük')elif x < 10 : print(‘Orta')else : print(‘Büyük')print(‘Program Sonu')
x < 2 Küçükevet
hayır
Program sonu
x < 10 Orta
Büyük
hayır
evet
Çok yönlü Koşullar: Bulmacalar 30
X değerinden bağımsız olarak hangi koşul asla çalışmaz?
if x < 2 : print('2 den küçük')elif x >= 2 : print(‘2 veya daha büyük')else : print(‘Başka birşey')
Çok yönlü Koşullar: Bulmacalar 31
X değerinden bağımsız olarak hangi koşul asla çalışmaz?if x < 2 : print('2 den küçük')elif x < 20 : print(’20 den küçük')elif x < 10 : print('10 dan küçük')else : print(‘başka birşey')
32
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance (www.dr-chuck.com) of the University of Michigan School of Information and open.umich.edu and made available under a Creative Commons Attribution 4.0 License. Please maintain this last slide in all copies of the document to comply with the attribution requirements of the license. If you make a change, feel free to add your name and organization to the list of contributors on this page as you republish the materials.
Initial Development: Charles Severance, University of Michigan School of Information
… Insert new Contributors and Translators here