2.Hafta Phyton Programlama Dili

Koşul İfadeleri

Ne Öğreneceğiz

  • Python’da Koşul Durumları
    • if
    • elif
    • else
  • Random modülü
  • abs() fonksiyonu

Gereksinimler

Zorluk Seviyesi

  • Orta

Eğitim İçeriği

Arkadaşlar temel kavramları ve input kullanıcıdan girdi almayı öğrendikten sonra koşul durumlarına geçiyoruz. İngilizce anlamından da bildiğiniz gibi if eğer koşulunu belirtmektedir. Diğer programlama dillerinde olduğu gibi Python‘da da bu durum geçerlidir.
if EĞER koşulunu oluşturmaktadır. Bir de else vardır, if’in zıttı tüm durumları temsil eder diyebiliriz. Eğer o değilse budur şeklinde düşünebilirsiniz.

Bir örnekle başlayalım, önce bir veri girilmesini isteyelim kullanıcıdan sonra bunun 5’den büyük olup olmadığına bakalım, buna göre olumlu veya olumsuz diye çıktı versin programımız:
sayi1 = int(input("Bir rakam giriniz: "))
if sayi1 > 5 :
print ("Olumlu")
else
print ("olumsuz")

Gördüğünüz gibi programı yazıp çalıştırınca ve 1 değerini girince “olumsuz” sonucunu verdi:

if ve else kullanımı genel olarak bu şekildedir. Bir de elif vardır, bu da bir diğer koşulu belirtmek için kullanılır.
Mesela, bir sayının 10’dan büyük ve 20’den küçük olup olmadığını kontrol edeceğiz, şöyle yazabiliriz:
sayi = int(input("Bir sayı girin: "))
if sayi > 10 :
print("Olumlu")
elif sayi < 20 :
print ("Olumlu")
else
print ("Olumsuz") 

Baktığımız zaman olumlu sonucu verdi, fakat neye göre ? Yani burada mantıksal bir hata var, bunu göstermek istedim:

Şöyle bir hata var,

  • Bizim 1. koşulumuz sayının 10’dan büyük olması
    1. koşulumuz sayının 20’den küçük olması

5 Sayısı bu durumda 1. koşula göre “olumsuz” olması gerekirken 2. koşula göre “olumlu” dur. Arkadaşlar burada size anlatmak istediğim durum if ve else ile ilgili değil aslında, değişkenlerle ilgili bir durum. Şöyle ki programlama dillerinde bu tür durumlarda en son verilen komut geçerli olur. Yani bizim ekrana yazılacak olumlu veya olumsuz yazısı en son ki koşulda ne ise odur. Son satıra baktığımızda else var, herhangi bir karşıt durum yok koşullarımıza baktığımızda ,
birinci koşulumuz 10’dan büyük, ikinci koşulumuz 20’den küçük, yani bunun aksi bir sayı yoktur doğada 🙂 bu yüzden bir önceki satıra bakıyoruz, 20’den küçük olma koşulu var ve bu koşulun sonucu olumlu . İşte bu yüzden de programımız sonucu olumlu olarak yazdı.

Peki girilen sayının 10 ile 20 arasında olması durumunu nasıl kontrol edeceğiz ?
Bunun için yine yardımcı komutlarımız var if ile kullanılabilen.
Bunlar;

  • or (yada)
  • and (ve)
    or ve and i if ile birlikte kullanıp daha farklı(çoklu) koşullar sağlayabiliriz. Örneğimizi burada yapalım:
    sayi = int(input("Bir sayı girin: "))
    if sayi > 10 and sayi < 20 :
    print ("Olumlu")
    else
    print ("Olumsuz")

Gördüğünüz gibi programımız şimdi doğru çalıştı;

Yeri gelmişken if ile birlikte kullandığımız operatörlerden ve kullanış biçimlerinden de bahsedelim arkadaşlar. Yukarıda ki örneklerde büyüktür (>) ve küçüktür (<) işaretlerini kullandık, bunlar gibi şu operatörleri de if ve elif komutları ile kullanabiliyoruz;

  • <= (küçük eşittir)
  • >= (büyük eşittir)
  • == (eşittir)
  • != (eşit değildir)

Gelin daha farklı bir örnek hatta bir oyun yapalım;
Şimdi bilgisayarımızdan 1 ile 100 arasında random bir sayı belirlemesini isteyelim, sonra kullanıcıdan da bir sayı girmesini isteyelim, eğer kullanıcının girdiği sayı bilgisayarın random olarak belirlediği sayıya %10’dan yakınsa, kullanıcının kazandığı değilse kaybettiği bir şans oyunu olsun.
Karışık gibi gelebilir size fakat adım adım programımızı yazınca gayet basit olduğunu göreceksiniz;

ÖNEMLİ BİLGİ: Arkadaşlar random sayı belirleme ileri ki konuların içerisinde işleyeceğimiz bir özellik fakat örneğimizde kullanmak için işimize yarayacak kadarını sadece gösterelim. Python’da random modülünü kullanmak için programınıza öncelikle import etmeniz gerekmektedir. Bunun için satır başına import random yazıyoruz ve random modülünü import ediyoruz. Aksi taktirde yazacağınız random komutları çalışmayacaktır.

Daha sonra sayi1 değişkenimize 1 ile 100 arasında bir random sayı atayalım. Bunu randint komutu ile yapacağız, şu şekilde:
sayi1=random.randint(1,100)
Öncelikle kodumuzu deneyelim, bakalım bize 1 ile 100 arasında bir sayı veriyormu, bunun için
print(sayi1) yazmamız yeterli bildiğiniz gibi:

Gördüğünüz gibi 32 sayısını çevirdi bize, random ile ilgili bir çok özellik var fakat konumuz bu olmadığı için devam ediyoruz, bu kadarı yeter de artar bize.
Şimdi kullanıcıdan bir sayı girmesini isteyelim, şu şekilde yapalım:
sayi2=int(input("Lütfen bir sayı girin: "))
Daha sonra kullanıcının girdiği sayı ile random sayının arasındaki farkın yüzdesine bakacağız, bunuda matematiksel olarak mutlak değer içerisinde |(sayi1 – sayi2)/100| şeklinde yapabiliriz.
Burada da yeri gelmişken Mutlak değere alma işlemini belirtelim hemen, Python’da abs() fonksiyonu mutlak değer fonksiyonuna eşdeğerdir.
Örneğin: abs(-6)=6‘dır.
Programımıza devam edecek olursak, yukarıda ki yüzde bulma işlemi için sayi3 değişkeni atayalım;
sayi3=(sayi1-sayi2)/100
Programımızın şuan ki hali:
import random
sayi1 = random.randint(1, 100)
sayi2=int(input("Lütfen bir sayı girin: "))
sayi3=abs((sayi1-sayi2)/100)
print(sayi3)


Gördüğünüz gibi programı çalıştırıp 60 sayısını girdim ve işlemleri yapıp 0,23 olarak sonuç verdi bana, bu ondalık dilimde %23’e karşılık geliyor. Oyunumuzun amacı neydi, arada ki fark yüzdesel olarak 10’dan küçük olursa eğer kazanacaktık, öyleyse son aşama yani sonucu if komutu ile değerlendirelim, hatta şöyle birşey de yapalım, bu ondalık sayıyı de 100 ile çarpalım bir tam sayıya dönüştürüp o şekilde devam edelim.
sayi4=sayi3x100
if sayi4 <= 10:
print("Sonuç: ",sayi4,"Kazandınız")
else:
print("Sonuç: ",sayi4,"kaybettiniz")

Şimdi aradaki gereksiz printleri kaldıralım ve programımızı başlatalım.


import random
sayi1 = random.randint(1, 100)
sayi2=int(input("Lütfen bir sayı girin: "))
sayi3=abs((sayi1-sayi2)/100)
sayi4 = sayi3*100
if sayi4 <= 10:
print("Sonuç: ",sayi4,"Kazandınız")
else:
print("Sonuç: ",sayi4,"kaybettiniz")

Şimdi bir de basit bir ==‘li örnek yazıp dersi bitirelim. Örneğin basit bir admin giriş uygulaması olsun belirlenen username ve password ile kullanıcının girdiği değerler eşleşirse başarılı olsun.
username = "cryptoadamc"
sifre = "123456789"
u1 = input("Kullanıcı Adınız: ")
s1 = input("Şifreniz :")
if u1 == username and s1 == sifre :
print("Giriş Başarılı")
else:
print("Başarısız Deneme")

Doğru girdiğimizde:

Gördüğünüz gibi işlemlerimiz başarılı bir şekilde gerçekleşiyor, bu dersimizi burada noktalıyoruz.

1.Hafta Phyton Başlangıç

Arkadaşlar bugün ki yazımımda sizlere sicikit öğrenmesi yaparken kullanacağımız phyton dilinden bahsedeceğim.Bloğun ilk üç haftasını phyton programlama diline ayırmayı düşünüyorum.Hadi başlayalım.

Python, öğrenmesi kolay, güçlü bir programlama dilidir. Nesneye yönelik programlama için etkili, yüksek seviyeli veri yapılarına ve basit ama etkili bir yaklaşıma sahiptir. Python’un zarif sözdizimi ve dinamik yazımı, yorumlanmış doğasıyla birlikte, çoğu platformda birçok alanda komut dosyası oluşturma ve hızlı uygulama geliştirme için ideal bir dil haline getiriyor.

Python yorumlayıcısı, C veya C ++ (veya C’den kalınabilir başka diller) ile uygulanan yeni işlevler ve veri türleri ile kolayca genişletilebilir. Python, özelleştirilebilir uygulamalar için bir eklenti dili olarak da uygundur.

Phyton’a Giriş:

Basit Python komutlarını deneyelim.

Sayılar

İde basit bir hesap makinesi gibi davranır: bir ifade yazabilirsiniz ve değeri yazacaktır. İfade sözdizimi basittir: operatörler +, -, * ve / gibi çalışırlar, diğer birçok dilde (örneğin, Pascal veya C) olduğu gibi çalışır; parantezler (()) gruplama için kullanılabilir. Örneğin:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # division always returns a floating point number
1.6
>>> 17 / 3  # classic division returns a float
5.666666666666667
>>>
>>> 17 // 3  # floor division discards the fractional part
5
>>> 17 % 3  # the % operator returns the remainder of the division
2
>>> 5 * 3 + 2  # result * divisor + remainder
17

Python ile, güçleri hesaplamak için ** operatörünü kullanmak mümkündür :

>>> 5 ** 2  # 5 squared
25
>>> 2 ** 7  # 2 to the power of 7
128

Bir değişkene değer atamak için eşittir işareti (=) kullanılır. Daha sonra, sonraki etkileşimli komut isteminden önce hiçbir sonuç gösterilmez:

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

Etkileşimli modda, son basılı ifade _ değişkenine atanır. Bu, Python’u bir masaüstü hesap makinesi olarak kullandığınızda, hesaplamalara devam etmek biraz daha kolay olduğu anlamına gelir, örneğin:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

Stringler

Sayıların yanı sıra, Python ayrıca çeşitli şekillerde ifade edilebilen dizeleri de kullanabilir. Aynı sonuca sahip tek tırnak (‘…’) veya çift tırnak (‘…’) içine alınabilirler [2]. \\ tırnaklardan kaçmak için kullanılabilir:

>>> 'spam eggs'  # single quotes
'spam eggs'
>>> 'doesn\'t'  # use \' to escape the single quote...
"doesn't"
>>> "doesn't"  # ...or use double quotes instead
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

Etkileşimli yorumlayıcıda, çıkış dizesi tırnak içine alınır ve özel karakterler ters eğik çizgi ile kaçar. Bu bazen girişten farklı görünebilir (kapalı tırnaklar değişebilir), iki dizge eşdeğerdir. Dize tek tırnak işareti ve çift tırnak içermiyorsa, çift tırnak içine alınır, aksi halde tek tırnak içine alınır. Print () işlevi, çevreleyen tırnakları atlayarak ve kaçtı ve özel karakterleri yazdırarak daha okunabilir bir çıktı üretir:

>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>> print('"Isn\'t," she said.')
"Isn't," she said.
>>> s = 'First line.\nSecond line.'  # \n means newline
>>> s  # without print(), \n is included in the output
'First line.\nSecond line.'
>>> print(s)  # with print(), \n produces a new line
First line.
Second line.

Arrayler

Python, diğer değerleri bir araya getirmek için kullanılan bir dizi bileşik veri türünü bilir. En çok yönlü olan, köşeli ayraçlar arasındaki virgülle ayrılmış değerlerin (öğeler) bir listesi olarak yazılabilen listedir. Listeler farklı türde öğeler içerebilir, ancak genellikle öğelerin tümü aynı türdendir.

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

Dizeler (ve diğer tüm yerleşik sıra tipi) gibi listeler de dizinlenebilir ve dilimlenebilir:

>>> squares[0]  # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:]  # slicing returns a new list
[9, 16, 25]

Tüm dilim işlemleri istenen öğeleri içeren yeni bir liste döndürür. Bu, aşağıdaki dilim, listenin yeni (sığ) bir kopyasını döndürdüğü anlamına gelir:

>>> squares[:]
[1, 4, 9, 16, 25]

Programlamaya Yönelik İlk Adımlar

Elbette, Python’u iki ve ikiyi birbirine eklemekten daha karmaşık görevler için kullanabiliriz. Örneğin, Fibonacci serisinin bir başlangıç ​​alt dizisini aşağıdaki gibi yazabiliriz:

>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8

Bu örnek birkaç yeni özellik sunuyor.

İlk satır birden fazla ödev içerir: a ve b değişkenleri 0 ve 1 değerlerini eş zamanlı olarak alır. Son satırda bu tekrar kullanılır, sağ taraftaki ifadelerin her birinin ödevlerden önce önce değerlendirilmesi meydana gelmek. Sağ taraftaki ifadeler soldan sağa doğru değerlendirilir.

While döngüsü, koşul (burada: b <10) geçerli olduğu sürece çalışır. Python’da, C’deki gibi, sıfır olmayan bir tamsayı değeri doğrudur; sıfır yanlıştır. Durum ayrıca bir dizi veya liste değeri olabilir, aslında herhangi bir dizi; Sıfır olmayan uzunluktaki her şey doğru, boş diziler yanlıştır. Örnekte kullanılan test, basit bir karşılaştırmadır. Standart karşılaştırma operatörleri C: <(küçüktür),> (büyüktür), == (eşittir), <= (daha küçük veya eşit),> = (büyük veya eşit) ile aynı şekilde yazılır. ve! = (eşit değil).

Döngünün gövdesi girintilidir: girinti, Python’un ifadeleri gruplama yoludur. Etkileşimli istemde, her girintili satır için bir sekme veya boşluk (lar) yazmanız gerekir. Pratikte Python için bir metin editörü ile daha karmaşık girdi hazırlayacaksınız; tüm iyi metin editörleri otomatik girinti tesisine sahiptir. Bileşik bir deyim etkileşimli olarak girildiğinde, tamamlandığını belirtmek için boş bir satır izlemesi gerekir (ayrıştırıcı son satırı yazdığınızda tahmin edemediği için). Temel blok içindeki her satırın aynı miktarda girintiye sahip olması gerektiğini unutmayın.

Print () işlevi, verilen argümanların / değerlerin değerini yazar. Yazmak istediğiniz ifadeyi (hesap makinesi örneklerinde daha önce yaptığımız gibi), çoklu argümanları, kayan nokta miktarlarını ve dizeleri işleme biçiminde yazmaktan farklıdır. Dizeler tırnak işaretleri olmadan yazdırılır ve öğeler arasında boşluk eklenir, böylece işleri güzel bir şekilde biçimlendirebilirsiniz:

>>> i = 256*256
>>> print('The value of i is', i)
The value of i is 65536

Anahtar kelime argümanı end, çıktıdan sonra yeni hattı önlemek için kullanılabilir veya çıkışı farklı bir dizeyle sonlandırılabilir:

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987

Arkadaşlar bu haftalık yazımızın sonuna geldik.Haftaya kaldığımız yerden devam edeceğiz.İyi çalışmalar