python ile programlamaya giri - ijshbahtiyar/dersler/icerik/python-ders3.pdfprogramlamaya giriş...

32
Python ile Programlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1

Upload: others

Post on 05-Mar-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Python ile Programlamaya GirişDERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR

1

Page 2: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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.

Page 3: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 4: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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)

Page 5: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ö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

Page 6: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 7: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

7

Page 8: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 9: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

9

Page 10: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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…

Page 11: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 12: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 13: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Koşula bağlı durumlar 13

Şifre gir

Doğru mu

Maile yönlendir

Hata mesajı ver

Evet

Yanlış

Page 14: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 15: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 16: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 17: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 18: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 19: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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

Page 20: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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')

Page 21: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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')

Page 22: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

İç 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

Page 23: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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

Page 24: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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')

Page 25: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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')

Page 26: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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

Page 27: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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

Page 28: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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

Page 29: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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

Page 30: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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')

Page 31: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

Ç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')

Page 32: Python ile Programlamaya Giri - IJShbahtiyar/dersler/icerik/Python-Ders3.pdfProgramlamaya Giriş DERS 3: KOŞULA BAĞLI DURUMLAR DR. HÜSEYİN BAHTİYAR 1 Klavye Girişi! Python’a

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