[ana sayfa] [hakkımda] [arşiv] [iletişim]

0 #Python - Input Güvenliği

Python'da kullanıcıdan veri alınırken input() ve raw_input() fonksiyonlarını kullanıyoruz.raw_input() fonksiyonu kullanıcıdan aldığı verileri karakter dizisi olarak saklarken input() fonksiyonu dosya silme, görüntüleme, kod çalıştırma işlemleri yapılmasına olanak sağlıyor.O yüzden input() fonksiyonu yerine raw_input() kullanıyoruz.


Örnek senaryo;

# -*- coding: utf-8 -*-
import datetime

ad = "merhaba adin nedir ? : "
giris = "dogum yilini gir : "

isim = raw_input(ad)
dogumt = input(giris)

print "\n"
print "##########################"
print "ismin : " , isim
print "dogum yılın : " , dogumt
print "##########################"
yil = int(datetime.datetime.now().strftime("%Y"))
print "\n"
yashsp = yil - dogumt
print "Tebrikler" , isim , "tam olarak" , yashsp , "yasindasin :)"

Kullanıcıdan doğum tarihini ve ismini girmesini isteyen buna karşılık kullanıcının yaşını hesaplan basit bir program.input() ile doğum yılını, raw_input() ile isim alıyoruz.

Zararlı kod olarak __import__('os').system('dir') kodunu isim & yıl alanına giriyorum.raw_input() kodun çalışmasına izin vermezken input() fonksiyonu zararlı kodu çalıştırarak klasör içeriğini listeliyor.

0 #Python - Döngüler

Python' da For ve While olarak 2 döngü var.Ben sadece while döngüsüne göre kodlamışım :) for döngüsüne göre de birşeyler ekleyeceğim.

Soru 1 : İstenilen sayıya kadar olan çift sayıları ve karelerini hesaplayan programı yazın.

Soru 2 : İstenilen sayının faktöriyelini hesaplayan programı yazın.

@ Soru 1:


# -*- coding: utf-8 -*-
# istenilen sayıya kadar olan çift sayıları ve karelerini bul
while True:
    giris = int(input("Bu Sayıya Kadarki Çift Sayıları ve Karelerini Listele : "))
    a = 0
    print "\n"
    print giris,"Sayısına Kadar Olan Çift Sayılar ve Kareleri :"
    while (a < giris) :
        a += 1
        if (a % 2 == 0) :
            print a,'~',a,'²=',a**2
    print "\n"

@ Soru 2:


# -*- coding: utf-8 -*-
# faktöriyel hesapla
while True:
    giris = int(input("Faktöriyeli Hesaplanacak Sayıyı Gir : "))

    sayac = 0
    fak = 1
    while giris > sayac :
        sayac += 1
        fak = fak * sayac

    print sayac,"! = ",fak

0 #Python - Koşula Bağlı Durumlar

Koşula bağlı durumlar dediğimizde eğer, yada, değilse karar yapılarından bahsediyorum.Python da bu ifadeleri if, elif, else olarak tanımlıyoruz.

Soru : Haftanın 5 günü için farklı bir yemek menüsü oluşturun.
Soru 2 : Bir önceki soruda müşterinin yediği yemekler için ayrıntılı hesap dökümü çıkarın ve müşteriyi bilgilendirin.

# -*- coding: utf-8 -*-

while True:
    mus_list = ["SERDAR","MUSTAFA"] #kayıtlı müşteriler dışında işlem yapmayı kapatalım.

    print '###################\n# Pazartesi => 1  #\n# Salı      => 2  #\n# Çarşamba  => 3  #\n# Perşembe  => 4  #\n# Cuma      => 5  #\n# Cumartesi => 6  #\n# Pazar     => 7  #\n###################'

    gunler  = ["Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "cumartesi", "Pazar"]
    yemekler_corba = ["Mercimek","Tavuksuyu","İşkembe","Ezogelin","Kelle Paça","Tarhana","Mantar"]
    yemekler_ana = ["Tas Kebabı","Tavuk Sote","Patlıcan Musakka","Dolma","Pilav","Balık","Hünkar Beğendi"]
    yemekler_tatli = ["Muhallebi","Sütlaç","Kadayıf","Güllaç","Şekerpare","Baklava","Puding"]

    fiyatlar_corba = [3.50] #tüm çorbalar 3.50 TL
    fiyatlar_ana = [5.00,4.00,4.50,3.50,3.50,5.00,4.00]
    fiyatlar_tatli = [5.00,4.00,5.00,3.50,3.50,4.00,3.50]
    print "\n"
    ad_sorgu = "Lütfen Adınızı Giriniz : "

    isim = raw_input(ad_sorgu)
    isim = str.upper(isim)

    if isim in mus_list:
        print "Hoşgeldiniz Sayın; ", isim,"!\n"
        secim = int(input("Menüsünü Görmek İstediğiniz Günün Sıra Numarasını Giriniz : "))
        if secim > 7 or secim < 1 :
            print "Geçersiz Gün İndisi!"
        else :
            secim -= 1  #liste indisi 0'dan başladığı için -1 :)
            print "\n"
            print "Gün : ",gunler[secim],"\n","Çorba : ",yemekler_corba[secim],"\n","Ana Yemek : ",yemekler_ana[secim],"\n","Tatlı : " ,yemekler_tatli[secim]
            print "\n"
            fiyat = str.upper(raw_input("Fiyatı Görmek İstiyormusunuz? [E/H]"))

            if fiyat == 'E':
                top = 3.50 + fiyatlar_ana[secim] + fiyatlar_tatli[secim]
                print "Toplam Hesap : ",top," TL"
            else:
                print "Teşekkürler..."
    else :
        print "Kayıt Bulunamadı!"

Yaşasın Çalışıyor ! 

0 #Python - Temel Kavramlar

Sıradan print "merhaba dünya" mevzularına hiç girmeden temel kavramlar konusuna örnek olarak yazdığım kod.

Soru : Ana görevi doğum yılı sorup yaş hesaplamak olan bir program yazın. Yazdığınız program kullanıcıya ismiyle hitap edip, ona yaşını söyleyebilmeli.

# -*- coding: utf-8 -*-
import datetime

ad = "merhaba adın nedir ? : "
giris = "dogum yılını gir : "

isim = raw_input(ad)
dogumt = int(input(giris))

print "\n"
print "##########################"
print "ismin : " , isim
print "dogum yılın : " , dogumt
print "##########################"
yil = int(datetime.datetime.now().strftime("%Y"))
print "\n"
yashsp = yil - dogumt
print "Tebrikler" , isim , "tam olarak" , yashsp , "yaşındasın :)"

0 Temanın Son Hali

Yıllardır blog teması olarak Minima adlı bu temayı kullanıyorum.2004 yapımı çok sade ve ham bir tema.Temanın ilk haline baktığımda epey mutasyona uğrattığımı farkettim :)

Yaptığım şeyler belki ufak tefek ve piyasada bulunan şeyler ama doğru yere doğru dokunuş yapmak önemli.

Neler değişti & eklendi ?
  • Banner çok eski hangi kafayla ve ne zaman yaptığımı bilmiyorum :)
  • Başlıkları ve sağ yan menüleri CSS ile biraz şekillendirdim.Yazı başlıklarında kullandığım sarı renk bana pozitif enerji veriyor :)
  • Başlıkların kenarına mouse ile üstüne gelindiğinde mutlu olan suratlar iliştirdim.Anlatımı burada ( CSS Rollover ) Ha yorum sayılarını baloncuk içine de almışım :)
  • Sayfalama ve son yorumlar eklentisi ekledim.
  • Yazılarımdaki kodların görünebilirliği için Syntax Highlighter eklentisi kullanıyorum.
  • Blogger etiket listeleme sistemi tam bir fiyasko.Onu da elden geçirdim.Blogger Tag Cloud diye aratırsanız iyi birşeyler bulabilirsiniz.
Ve en son olarak da;

Dün sayfaya dinamiklik katacağını düşünerek Content Slider eklemeye karar verdim.Stabil ve sağlam birşey bulabilmek için dünden beri uğraşıyordum ki sonunda içime sinecek birşey buldum; Wowslider.com.Saolsunlar geliştirdikleri uygulama sayesinde kodla satırla pek uğraşmadan kolaylıkla siteme göre uygun birşey tasarlayıp kodları ve dosyaları aldım ve Google Drive 'a yükledim.İleride slider 'ın nasıl ekleneceği konusunda açıklayıcı bir yazı yazmayı düşünüyorum.

Şimdilik bu kadar hoşçakalın...

0 Doom 3: BFG Edition

Merhaba, bu yazımda biraz nostalji yapayım diye torrent'ten indirip gecelerimi gündüzlerimi mahveden oyun Doom 3: BFG Edition üzerine konuşucam.Oyunun yaşına aldanıp hafife alırsanız sizi hüsrana uğratması muhtemel.