Python Dersleri - Alıştırmalar

Bundan önceki derslerimizde Youtube'dan Erdem Kalyoncu'nun kanalından çalıştıpımı söylemiştim. Erdem arkadaşımız sesli ve görsel videolarını belli bir yerde bırakmış. Keşke bırakmasaydı. Çok güzel, sade ve basit bir şekilde anlatıyordu. Neyse artık tekrardan videoları yayınlamaya başlarsa tektrardan orayada bir göz atarız. Şimdilik internette bulduğum çokda güzel anlatılmış olan Python derslerine başlıyorum. Siz de isterseniz www.pythondersleri.com 'dan takip edebilirsinz. Yada benimle birlikte burada öğrenebilirsiniz.

Şimdiye kadar öğrenmiş olduklarımız ile ilgili olarak www.pythondersleri.com 'da güzel alıştırmalar öncelikle onları yapalım ve sonra derslerimize başlayalım.

Soru 1) Bir dersten geçme notu 50 olarak belirlenmiş olsun. Kullanıcıya notunu sorup dersten geçme-kalma durumunu ekrana yazan programı yazınız.

Cevap 1)

gecmenotu = 50
while True:
    girilennot = int(raw_input("Lütfen Notunuzu Giriniz : "))

    if 0 <= girilennot <= 100:
        if girilennot >= gecmenotu:
            print "Geçtiniz. Notunuz : ", girilennot
            break
        else:
            print "Kaldınız. Notunuz : ", girilennot
            break
    else:
        print "Lütfen Geçerli bir not giriniz !"
        continue



Soru 2) Bir öğrencinin 2 tane sınav notunu kullanıcıdan alıp ortalamasını bulunuz. 100'lük sistemdeki bu notu 5'lik sistemdeki nota dönüştüren programı yazınız. (0-24->0; 25-44->1; 45-54->2; 55-69->3; 70-84->4; 85-100->5)


Cevap 2)

# -*- coding: cp1254 -*-

while True:
    ilknot = int(raw_input("İlk notunuzu giriniz : "))
    ikincinot = int(raw_input("İkinci notunuzu giriniz : "))

    if 0 <= ilknot < 100 and 0 <= ikincinot <= 100:
        ortalama = (ilknot + ikincinot) / 2
        if 0 <= ortalama <= 24:
            AlinanNot = 0
        elif 25 <= ortalama <= 44:
            AlinanNot = 1
        elif 45 <= ortalama <= 54:
            AlinanNot = 2
        elif 55 <= ortalama <= 69:
            AlinanNot = 3
        elif 70 <= ortalama <= 84:
            AlinanNot = 4
        elif 85 <= ortalama <= 100:
            AlinanNot = 5
           
        print "Notlarınızın Ortalaması : ", ortalama, "Notunuz : ", AlinanNot
        break
    else:
        print "Notunuzu yanlış girdiniz. Lütfen tekrar deneyiniz."



Soru 3) Kullanıcının 1 ile 7 arasında bir sayı girmesini isteyiniz. Girilen sayının haftanın hangi günü olduğunu bulan programı yazınız. Hatalı girişlerde programın uyarı vermesini sağlayınız.

Cevap 3)
 
  # -*- coding: cp1254 -*-
while True:
    girilensayi = int(raw_input("Lütfen 1 ile 7 arasında bir sayı giriniz : "))

    if 1 <= girilensayi <= 7:
        if girilensayi == 1:
            print "Haftanın %s. Günü Pazartesidir." %girilensayi
        elif girilensayi == 2:
            print "Haftanın %s. Günü Salıdır." %girilensayi
        elif girilensayi == 3:
            print "Haftanın %s. Günü Çarşambadır." %girilensayi
        elif girilensayi == 4:
            print "Haftanın %s. Günü Perşembedir." %girilensayi
        elif girilensayi == 5:
            print "Haftanın %s. Günü Cumadır." %girilensayi
        elif girilensayi == 6:
            print "Haftanın %s. Günü Cumartesidir." %girilensayi
        elif girilensayi == 7:
            print "Haftanın %s. Günü Pazardır." %girilensayi
        break
    else:
        print "Lütfen geçerli bir sayı giriniz !"




Python Öğreniyorum - Ders 16 - Python'da break ve continue Deyimleri


Python'da break ve continue deyimleri döngülerde bazı işlemleri yapmamızı sağlıyor.

break deyimi döngüyü sonlandırmaya, continue deyimi ise döngüyü başa sarmaya yarıyor.

Hemen bir örnek vererek bu iki deyimin nasıl ve ne işe yarar olduğunu açıklayalım.

while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"

Program bu haliyle sonsuza kadar bize Kullanıcı adını soracaktır. Biz eğer kullanıcı adımız doğru olursa sadece Hoşgeldiniz yazmasını ve tekrar Kullanıcı adını sormamasını isteyelim. Yani döngünün sonuna break deyimini koyalaım ve döngü sonlansın.

while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break

break deyimi bu kadar arkadaşlar. Şimdi gelelim continue deyimine.

while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break
    else:
        print "Giriş Hatası"

Yukarıdaki kodu çalıştırdğımızda ve kullanıcı adını yanlış girdiğimizde "Giriş Hatası" yazacaktır. Birde bunu continue ile deniyelim.


while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break
    else:
        print "Giriş Hatası"
        continue

Yukarıdaki kodda yine aynı çıktıyı aldık. continue deyimini kullansakda kullanmasakda oluyor gibi düşünebilirsiniz. Fakat continue deyiminde şöyle bir şey vardır. Eğer biz continue deyiminden sonra bir şey yazmış olsaydık, Python onu görmeyecek ve continue deyiminden itibaren başa dönecek, döngüyü tekrar başlatacaktı. Örneğimizi şöyle daha anlaşılır yapalım.


while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break
    else:
        print "Giriş Hatası"
    print " Merhaba Dünya"


Kullanıcı adımızı yanlış girdiğimizde çıktı olarak ;

Giriş Hatası
Merhaba Dünya


aldık. Peki print "Merhaba Dünya" yı continue'dan sonra yazsaydık.

while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break
    else:
        print "Giriş Hatası"
        continue
    print " Merhaba Dünya"

Gördüğünüz gibi continue deyiminden sonra gelen print "Merhaba Dünya" ekrana yazılmadı. Yani continue deyimi döngüyü başa döndürdü.


while True:
    a = raw_input("Kullanıcı Adı : ")
    if a == "Python":
        print "Hoşgeldiniz"
        break
    else:
        print "Giriş Hatası"
        continue

 print " Merhaba Dünya"


Yukarıdaki örnekte print "Merhaba Dünya" yı tamamen kodun dışına yazdık dikkat ettiyseniz. Ve çalıştırdığımızda (kullanıcı adını yanlış girdiğimizde)  bize "Merhaba Dünya" çıktısını vermedi. Çünkü continue deyimi döngüyü devam ettiriyor ve döngüden çıkılmadğı içinde "Merhaba Dünya" yazılmıyor.  Döngüden çıkıldığı zaman print "Merhaba Dünya" kodu çalışacaktır.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.


Python Öğreniyorum - Ders 15 - Python'da in İşleci

in işleci ingilizce'den de anlayacağınız üzere içinde demektir.  n = içinde

Şöyle bir kullanımı vardı;

for a in "Python":     burada in işlecini görmüştük.

Şimdide in işlecinin gerçekte nasıl kullanıldığını göreceğiz. Şöyle bir şey yapalım;

"P" in "Python"   yazdığımzda P karakter dizesi "Python karakter dizesinin içindemi diye bir soru sorarız Python'a. Cevap olarak da;

"P" in "Python"    ==>   True

"p" in "Python"    ==>   False      Hatırlarsanız büyük ve küçük harf Python'da aynı şeyler değildi. Büyük ve küçük harf ikiside ayrı bir karakter dizesi olurdu. O yüzdendi buradaki çıktımız "False" oldu.



"A" in "Python"    ==>  False      A harfi "Python" dizesinde olmadığından False çıktısı alındı.

"yt" in "Python"    ==>  True 

Peki biz bunları program içinde nasıl kullanırız ?  Hemen yeni bir proje açalım ve projemizde bunu gösterelim.

a = raw_input("Çıkmak istediğinize emin misiniz ? E - H :")

if "e" in a or "E" in a:
    print "Programdan Çıkılıyor."

 Yukarıda örnekte kullanıcaya çıkmak isteyip istemediğini sorduk ve Evet'se E'ye Hayır'sa H'ye basmasını söyledik.

Eğer "e" ve ya "E" yazılmışsa raw_input()'a o zaman "Programdan Çıkılıyor..." yazdırdık. Başka bir şey yazsaydık program bir şey yapmayacaktı. Sadece "e" ve "E" yazarsak çıktı vermesini istedik.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.

Python Öğreniyorum - Ders 14 - Python'da Döngüler - for Döngüsü


for döngüsü şöyle bir örnkele açıklayalım;

for a in "Python":
    print a

for döngüsünü başlatmak için öncelikle for yazıyoruz.  Daha sonra bir değişken yazıyoruz. Daha sonra in diye bir bağlaç kullanıyoruz. En sonada döngünün elemanını yazıyoruz. while daki koşul gibi düşünebilirsiniz. Aynı anlama gelmiyor fakat ne anlama geldiğini birazdan açıklayacağız. Ve satır sonuna da  while ve if'lerdeki gibi iki nokta koymayı unutmuyoruz.

for döngüsünün amacı yazılan değişkenin(örnekte a) her seferde Yazılan elamanın(Örnekte "Python") öğresine eşitlemektir. Yani program başladğı anda a'nın değerini elamanın değerine eşitler. İlk olarak "Python" elemanında bulunan P harfine eşitler a'yı ve ikinci olarak "y" harfine eşitler. ve bu elelamnlar sayıları bitene kadar eşitlemeye devam eder. Çıktı olarakda aşağıdakini görürüz.

P
y
t
h
o
n



Birde for fonksiyonun farklı kullanış biçimleri vardır.

for a in range(0,100):
    print a
  


Yukarıdaki örneğin çıktısı 0'dan 99 'a kadar olan sayıları satır satır ekrana yazdırır.

for döngüsünün temel amacı bu şekildedir. İlerleyen derslerimizde bolca kullanacağımz bir döngüdür.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.

Python Öğreniyorum - Ders 13 - Python'da Döngüler - len Fonksiyonu

 

len Fonksiyonu Nedir ?

len() fonksiyonu bir karakter dizesinin uzunluğunu belirlemekte kullanılır.  len() gibi bir kullanım şekli vardır. Parantezin içinede uzunluğunu belirlemek istediğimiz karakter dizesini yazarız.

len("Python")    ==>  6

a = "python"
len(a)    ==>   6


len fonksiyonları sadece karakter dizeleinde kullanılır. integer larda kullanılmaz.

a = 123456
len(a)    ==>     Traceback (most recent call last):
                           File "<pyshell#2>", line 1, in <module>
                             len(a)
                         TypeError: object of type 'int' has no len()


Gördüğünüz gibi integer larda kullandığımızda Python bize hata verdi. Ama illa ben integer kullanıcam derseniz veri dönüşüm tiplerinden yardım alabilirsiniz.

a = 123456
len(str(a))   ==>  6        Gördüğünüz gibi integer bir ifadeyi string e çevirdik ve karakter uzunluğunu bulduk.

Peki biz bunları nerede kullabiliriz. Örnekle bunu açıklayalım;

a = raw_input("Lütfen parolanızı giriniz : ")

if len(a) > 7:
    print "7 haneden fazla parola girmeyiniz."



Yukarıdaki örnekte girilen parola değeri eğer 7'den yükseke uyarı veriyor. len() fonksiyonlarını da bu şekilde kullabiliriz.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.

Python Öğreniyorum - Ders 12 - Python'da Döngüler - range Fonksiyonu


range Fonksiyonu Nedir ?

range() fonksiyonun işlevi belirli aralıktaki yada belirli bir bitiş noktasındaki tam sayıları ekrana yazdırmaktır. 
Kullanımı şöyledir.

range()

Bu parantez içine 3 tane değer alabiliyor. Bu değerleri virgül ile ayırıyoruz.

range(100)   ==>    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

range(10) yazdığımızda Python bize 0 ile 99 arasındaki sayıları ekrana yazdırır.

Normalde 0 ile 100 arasındaki sayıları söylerken 0'ı söylemeyiz fakat 100'ü söyleriz. Python'da ise bu tam tersidir. 0'ı yazdırır fakat 100' yazdırmaz. Buda dikkat etmemiz gereken bir noktadır.

range(1)  ==>   [0]


Parantez içine iki tanede sayı yazabiliriz.İk sayı başlangıç sayısıdır ve ikinci sayıda bitiş sayısıdır.

range(10,20)   ==>  [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

range(0,100)   ==>  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]


Peki parantezin içindeki üçüncü değer ne oluyor derseniz, şöyle açıklayalım. Üçüncü değer kaçar kaçar yazdırılacağını söyler bize. Mesela; 0 ile 100 arasındaki sayıları ikişer ikişer yazdıralım;

range(0,100,2)    ==>    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

range(0,100,1)   ==>    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

Üçünü ifadenin başka bir kullanım şekli daha vardır. şimdi ona gelelim.

Biz 0 ile 100 arasındaki sayıları tersten yazdırmak istersek ne yapacağız.
Şöyle denesek ne olur:

range(100,0)   ==>    []

Gördüğünüz gibi Python bize bir boş küme olduğunu söyledi. O zaman üçüncü sayımızın yerine "-1" gibi bir ifade kullanırsak ne olduğna bakalım bir de;

range (100,0.-1)    ==>    [100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]


range (100,0, -2)   ==>   [100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.

Python Öğreniyorum - Ders 11 - Python'da Döngüler - while Döngüsü

 

İlk olarak while ne anlama gelir onu söyeleyerek başlıyalım. while türkçe olarak olduğu sürece olarak çevirebiliriz. Kullanım yapısı olarak if 'e benzemektedir.

if 'lerde şöyle yapıyorduk.

if a > 5   yani a 5'ten büyükse anlamına gelmekteydi.5
while a > 5   yani a, 5'ten büyük olduğu sürece anlamına gelmektedir. Ve bunun altına yazacağımız kodlar a 5'ten büyük olduğu sürece çalışır.

Yeni bir proje oluşturalım ve bir örnek yaparak açıklayalım;


a = 0
a = a + 1
print a     ==>  1

a diye bir değişkenimiz var ve bunun değerini 0 verelim. Tekrar alt satıra geçtik ve a' ya yeni bir değer verdik. Yani ilk başta Python a'yı 0 olarak gördü, ve alt satıra geçtiğine a'nın değeri 0 olduğundan 0 + 1 toplama işlemini yaparak a'nın yeni değerini 1 olarak kabul etti.

a = 0
while a < 100:
    a = a + 1
    print a

Yukarıdaki örnektede a'nın ilk değeri 0 ve a 100'den küçük oluncaya kadar devamlı başa dönüp ekrana yazdırıyor. a'nın değer eğer 100'den büyük olursa program çalışmayı durduruyor.


Birde while'ı şöyle kullanabiliriz;

a = 0
while True:
    a = a + 1
    print a

 Yukarıdaki örnekte yanlış bir ifade görene kadar döngü devam eder. İfadede bir yanlışlık göremeyeceği için döngü sonsuza kadar devam eder.

Peki biz while'ı nerelerde ve nasıl kullanırız.  Hemen bir örnek proje yapalım ve görelim.

a = 1
while a == 1:
    b = raw_input("Lütfen kullanıcı adınızı giriniz : ")
    if b == "Python":
        print "Giriş Başarılı"
        a = 2
    else:
        print "Lütfen giriş bilgilerinizi kontrol ediniz."


a =1 dememizin nedeni döngü a =1 olduğu sürec devam etsin istedik ve kullanıcıdan kullanıcı adı istedik. Eğer kullanıcı adı "Python" ise "Giriş Başarılı" yazdırdık vede a'yı 2'ye eşitleyerek döngüyü sonlandırdık.

Eğer girilen kullanıcı adı "Python" değilse döngüyü devam ettirdik.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.