Python (eski yazılar, sayfa 6)

Parsing Kavramı ve Yöntemleri

Aslında, geçen gün yazdığım Lexer için yazdığım Parser'ı tanıtacaktım. Parse kavramı üzerine internetten kolayca kaynak bulunabileceğini düşündüm. Ancak, biraz google araması yaptığımda karşıma gelen Türkçe sonuçlar pek tatmin edici olmadı. Bu sebeple, önce tanıtıcı bir yazıyla başlamak istedim. Bu yazının konuları şunlar olacak.

Devamını oku…

Lexical Analiz 3

Bugünkü yazılar biraz spam gibi oldu kusura bakmayın, ama lexical analiz 2'deki lexer'a yapılabileceğinden bahsettiğim birkaç eklemeyi de göstereyim dedim.

Satır Sayma

Satır sayma konusu çok kolay, _lexInitial ve _lexString yeni satırla karşılaştıklarında, bir değişkeni artıracak. Ayrıca, gönderdiğimiz tokenlere satır bilgisi de ekleyeceğiz.

Devamını oku…

Lexical Analiz

lexical analiz karakter dizisini, token dizisine çevirme işlemine deniyor. Token dediğimiz şey ise, bir veya daha fazla karakterden oluşan ve grup olarak önem taşıyan karakter dizisi demek. Bu analizi yapan kodlara lexer deniyor. Çoğu zaman, lexer'ların oluşturduğu token dizisi, parser tarafından işlenir. Bunlar bir dil oluşturmak ve bu dili analiz etmek için kullanılır.

Devamını oku…

cx_freeze ve py2exe alternatifi

Yazdığı kodları Windows'da son kullanıcıya dağıtmak isteyen Pythoncular bildiğim kadarıyla, iki farklı yol izliyor:

  • Kullanıcıdan Python yüklemesini istemek
  • cx_freeze, py2exe gibi programlarla Python ve yazılan uygulamayı tek dosya altında birleştirmek

Bu iki yöntemin de kendine göre bir takım sıkıntıları var. İlk yöntem, son kullanıcı açısından yorucu olabilir. Aynı zamanda, son kullanıcının Python'u kuracak ve sistem yoluna ekleyecek kadar bilgili olmasını gerektiriyor.

İkinci yöntem ise, hem bir açıdan kodları sakladığı için açık kaynak felsefesiyle ters düşüyor, diğer yandan bozuk exe dosyası üretme riski var. Ayrıca, şahsen hiç estetik bulmuyorum bu yöntemi.

Bu yazıda, muhtemel bir üçüncü yöntemden bahsedeceğim.

Devamını oku…

Python ile Yazılmış Programlar

Python kullanım alanları yazısında, Python programlama dilinin hangi alanlarla kullanıldığına değinmiştim. Bu yazıda ise, Python ile neler yapılabileceği daha iyi anlaşılsın diye, Python ile yazılmış programlardan bahsedeceğim.

Python Kullanım Alanları

Bu yazı Python'a yeni başlamış veya başlamayı düşünen kişilere yönelik olacak. Eğer Python'a başlamayı düşünüyorsanız ancak sizin için doğru bir dil olduğun emin değilseniz, bu yazı sizin için.

Python çok çeşitli alanlarda kullanılan oldukça güçlü, dinamik bir programlama dilidir. Python'u farklı kılan özelliklerden biraz bahsetmek gerekirse:

  • Net ve kolay okunabilen yazımı
  • Çalışma esnasında objelerin özelliklerini inceleyebilme imkanı
  • Kolay anlaşılır nesne tabanlı programlama özellikleri
  • Güçlü ifade yeteneği
  • Modüler yapısı
  • Exception tabanlı hata yönetimi
  • Çok yüksek seviye dinamik veri yapıları
  • Çok geniş kütüphaneleri
  • C veya C++ ile ek modüller yazmanın kolaylığı
  • Diğer programlara kodlama arayüzü olarak dahil edilebiliyor olması

    Devamını oku…

Python'da iki tarih arasındaki gün farkı

Bu çok kısa bir yazı olacak. Elimizde iki adet date veya iki adet datetime objesi varken;

>>> from datetime import date
>>> a = date(2012,12,25)
>>> b = date(2012,12,18)
>>> a-b
datetime.timedelta(7)
>>> (a-b).days
7

İki tarihi birbirinden çıkarmak timedelta objesi döndürüyor. Bu objenin de days niteliği iki tarih araındaki zaman farkının gün cinsinden değeri. Unutmamak için buraya not alıyorum.