22 Mayıs 2020 Cuma

Python - Şart Yapısı (if/else)

Python şart yapısı - ozgurcyaman.com

Şart yapıları tüm yazılım dillerinde bulunan, yazılımın ana bileşenlerinden biridir ve oldukça sık olarak kullanılırlar. Syntax yapıları dillere göre farklılık gösterse de temel olarak yapıları benzerdir. Biz if/else yani şart yapıları sayesinde değerleri kontrol edebilir ve durumlara özel işlemler yaptırabiliriz. Python'da yine bu işlemler için kullanılmaktadırlar. Kullanım yapısını inceleyelim.

      if(sart):
          kodlar
      elif(sart):
          kodlar
      else:
          kodlar


  • Yapıyı incelediğimizde, if (eğer) parantez içerisine yazılan şart yapısı true değerini verirse yani şartımız sağlanırsa (:) ile oluşturduğumuz kod bloğu kısmına yazılan kodlar çalışmaktadır.
  • Elif (değilse eğer) ise if ile oluşturduğumuz şart false değeri verdiğinde yani sağlanmadığı durumda bakılan kısımdır, bu kısıma yine farklı bir şart yazılıp sorgulanır. 
  • if ve elif yapısı sorgulanacak durum sayısına göre istenilen sayıda olabilir fakat else yapısı tüm bu şartların sağlanmadığı durumda çalışacak olduğundan maksimum bir adet olmaktadır.
  • Else yapısı içerisine bir şart girilmez, tüm belirlenen şartların false değeri vermesi sonucunda çalışacak kodları else yapısı içerisine gireriz. 
Örnek:

Şart yapısı kullanarak girilen sayının pozitif mi, negatif mi yoksa 0 değerine mi eşit olduğunu bulan python kodlarını yazalım.

sayi=int(input("Sayı Giriniz: "))

if(sayi< 0):
    print(f"Girilen sayi {sayi} Negatif")
elif(sayi>0):
    print(f"Girilen sayi {sayi} Pozitif")
else:
    print("Girilen sayı 0")

19 Mayıs 2020 Salı

Algoritma ve Akış Diyagramı


Algoritma, belirlenen bir amacı veya problemi gerçekleştirmek için tasarlanan yolu temsil eder. Bilgisayar biliminde, bir amaca yönelik başlangıç durumundan başlayıp belirli süreçlerden geçerek sonlanan yapıdadırlar. Algoritma, adım adım bir işin nasıl yapılacağını anlatır. Basit bir örnek vermek gerekirse girilen sayının çift olup olmadığını bulan programın algoritma adımlarını yazalım.

  1. Başla
  2. Sayısal x (sayısal bir x değişkeni tanımladık)
  3. Yaz ("sayı giriniz: ")
  4. Oku x
  5. Eğer (x%2=0)
  6. Yaz "sayı çifttir"
  7. Değilse 
  8. Yaz "Sayı tektir"
  9. Bitir
Algoritma adımları görüldüğü gibi yalın ve anlaşılır yapıda olmalıdır. Algoritmaların bir problemi çözmek veya bir amacı uygulamak için çoğu zaman alternatif çözüm yöntemleri bulunur, bu yöntemler arasından en az adımda, en kısa sürede çözüm sağlayan yöntem tercih edilmelidir. Bu yöntem en optimum, en performanslı seçenek olacaktır. Bunun yanında algoritmalar uzadıkça hata oranımızın da artacağı bilinen bir gerçektir. Döngüler bu konuda önemli bir avantajdır.

Akış Diyagramı


Akış diyagramları, algoritmaları daha kolay bir şekilde anlatmak için görselleştirilmiş yapıda kullanılırlar. Diyagram üzerinde bulunan her şeklin özel bir anlamı vardır, döngüler, şart yapıları, yazdırma işlemleri farklı çizimlerle gösterilir. Temel olarak akış diyagramı nesneleri aşağıda verildiği gibidir.

Akış diyagramı ozgurcyaman.blogspot.com

16 Mayıs 2020 Cumartesi

Python - Hashing Fonksiyonu

Hash fonksiyonu, bir özetleme fonksiyonu olarak düşünülebilir. Temel olarak alınan bir mesajı daha küçük alana sıkıştırmaktır. Örneğin 1024 bitlik bir mesajı 128 bitlik yapıya indirgeyen bir algoritmaya sahiptir. Bu uygulamada bir hash fonksiyonu olan md5 algoritması kullanılacaktır.
Md5 algoritması, girilen verinin özetlenerek veritabanına iletimini sağlar. Örneğin girilen şifre açık halde değil hashing(özetleme) ile oluşan değer ile tutulur.


Veritabanında tutulan değer, geriye dönük olarak tekrar açılamaz dolayısı ile şifrenin asıl hali görünmemektedir.

Python dilini kullanarak basit bir hashing fonksiyonu yazmak istersek aşağıdaki gibi kodlanabilir:


import hashlib     #hashlib hazır modülünü çağırdık 

def md5hashislemi(sifre): 

  d = hashlib.md5() 
  d.update(sifre.encode('utf-8')) 
  return d.hexdigest() 

#md5hashislemi adında bir değer döndüren fonksiyon tanımladık. 
#md5 fonksiyonunun kullanılacağını belirttik 
#olusan çıktının utf-8 dil ailesinden olduğunu belirttik. 

giris=input("Lütfen Şifre Giriniz: ")
sonuc=md5hashislemi(giris) 

print("Hashing Sonucu: "+sonuc) 

#giris değişkeni ile kullanıcıdan şifre girmesini istedik. #sonuc değişkeni ile girilen değeri md5hashislemi fonk. yolladık 

#hashing işleminin sonucunu ekranda yazdırdık. 
#ozgurcyaman.blogspot.com



Örnek hashing sonucu


Anaconda Navigator

Anaconda navigator ozgurcyaman.blogspot.com

Anaconda Navigator, açık kaynaklı Python ve R dillerini kodlanması için geliştirilmiş bir platformdur. Python ile yazılım geliştirebilmemiz için anaconda tarafından Spyder ve Jupyter R için ise Rstudio yapılarını içerisinde bulundurur. Bu IDE'lerin güncellerimi de Anaconda Navigator arayüzünden yapılabilmektedir. Yine bu platform üzerinden çeşitli topluluklar ve eğitimler bulunmaktadır.

Anaconda indirmek için tıklayın

Kurulum doyası indirilip gerekli kurulum yapıldıktan sonra karşılaşılan ekran aşağıdaki gibidir:


Bu noktada çeşitli istenilen programlar yüklenilip kullanılabilir.