Yeni text editörümüz “Yazgaç”

Yazgaç’ı indirmek için tıklayınız.

# -*- coding: cp1254 -*-

# Türkçe karakterlerin düzgün görünmesi için dil kodlaması belirledik
# Böyle bir belirleme yapmazsak varsayılan olarak türkçe karakterler 
# görünmeyecektir.

"""
Programı yazan:                 Aydın ŞEN

Tarih:                          9.11.2007

Kullanılan dil:                 Python

Kullanılan kütüphane:           wxPython

Açıklamalı anlatım:             www.pythonturk.com

Kullanılan lisans:              GPL (General Public License - Genel Kamu Lisansı)

** GPL şartları dahilinde kullanımı serbesttir.

"""

Continue reading “Yeni text editörümüz “Yazgaç””

Dictionaries nedir, ne değildir?

Pythonda kullanılan bir veri tipi olan dictionary (sözlük) oldukça kullanışlı bir veri türüdür. Listelerin yetersiz kaldığı yerlerde bu açığı kapatmak için kullanılabilir. Listeleri sıralanmış veriler dizisi olarak düşünürsek sözlükler tam tersine sırasız veriler bütünü olarak düşünülebilir. Sözlüklerin özelliklerini maddeler halinde sıralayacak olursak;

* Sözlüklerde verilere erişim listelerde olduğu gibi indeks numarasıyla değilde verileri tanımlarken belirlediğimiz anahtar kelimelerle (key) sağlanır. Bu da bize verilere erişimde oldukça kolaylık sağlamaktadır.

* Değerler süslü parantezler arasına yazılırlar {}.

* Sözlüklerde listeler gibi otomatik boyutlandırma yapabilirler, yani kapasitesinin dolması gibi bir durum söz konusu değildir.

* Sözlüklere her türlü veri tipinde değer girilebilir (liste, başka bir sözlük, nesne ve diğerleri).

* Listelerde ve stringlerde kullandığımız bazı özellikleri (properties) sözlüklerde kullanamayız. Bunun sebebi sözlüklerin düzensiz yapılar olmasından dolayıdır. Ancak sözlüklerin kendine özel fakrlı özellikleri vardır (bunlara ileride değineceğiz).

Şimdi sözlüklerin kullanımına birkaç örnek verelim:

s1={’yumurta’:5, ’sucuk’:1, ‘ekmek’:2}

Yeni bir sözlük oluşturdurk.

s1[’yumurta’]
5

Anahtar kelimeyle (key) erişim sağladık.

len(s1)
3

Sözlükteki verilerin adedi.

s1.has_key(’sucuk’)
1

s1[’yumurta’] ile aynı işi görüyor.

s1.(keys)
[’yumurta’,’sucuk’,'ekmek’]

Sözlükteki anahtar kelimeleri (keys) listeler.

s1[’sucuk’]=[’acılı’,'acısız’]
s1
{’yumurta’:5, ’sucuk’:[’acılı’,'acısız’], ‘ekmek’:2}

Değer değiştirme.

del s1[’sucuk’]
s1
{’yumurta’:5, ‘ekmek’:2}

Değer silme.

s1[’icecek’]=’meyve suyu’
s1
{’icecek’:'meyve suyu’,'yumurta’:5, ‘ekmek’:2}

Değer ekleme.

Uygulamaya yönelik bir örnek yapalım..

tablo={
‘Python’ : ‘Guido van Rossum’,‘Perl’: ‘Larry Wall’,‘Tcl’: ‘John Ousterhout’ }
dil=’Python’
olusturan=tablo[dil]
olusturan
‘Guido van Rossum’

for lang in tablo.keys: 
    print lang,tablo[lang]
Python Guido van Rossum
Perl Larry Wall
Tcl John Ousterhout

En son kullandığımız komuta dikkat edelim. Normal koşullarda sözlükleri string ve listelerde olduğu gibi for döngüsü içerisinde kullanamazsınız. Ama bunun da bir çözümü var: keys metodu bu durumda işinizi görecektir. Bu metodu parametresiz () şekilde çağırdığınızda size sözlükteki bütün anahtar kelimeleri döndürecektir ve bu anahtar kelimeler üzerinden for döngünüzü çalıştırabilirsiniz.

İlk Python yazısıdır, önemlidir…

Eveeet.. 26.05.07 saat 12:43 itibariyle python’a başlamış bulunuyorum. Hepimize hayırlı uğurlu olsun.Python’a pat diye girmek istemedim.Önce nette araştırdım, nasıl bir dildir, hangi ideler mevcuttur, python’la neler yapılmıştır, bu dille ilgili kaynaklar nelerdir? Daha sonra hazırlık aşamasını biraz uzattığımı fark ettim, yeni bir dil öğrenmeye başlama korkusu diyebiliriz buna, acaba java ile devam mı etsem sorusunu sordum kendime ve o anda vazgeçtim bu fikirden.Hayır kendime söz vermiştim ve python’u öğrenicektim. Ve bu akşam oturdum bilgisayarımın başına netten indirdiğim Dive into Python’la birlikte Kate’i açıp başladım bu serüvene..

Önce python’un nasıl bir dil olduğu ile başladım işe.Acelecilik yapıp direk programlama kısmına atlamak istemedim. Zira sindire sindire ilerlemek istiyordum.Her programlama dilinde olduğu gibi python’da da fonksiyonlar(metot,modül gibi isimleri de mevcut) vardı ve şöyle tanımlanıyordu:

def fonksiyon_adi(parametreler):

Mesela;

def bul(sayi):

Evet burada “bul” adında bir fonksiyon tanımladık ve “sayi” diye bir parametresi olduğunu belirttik.Birden fazla parametre almasını istiyorsak aralarına bir virgül “,” koymamız yeterli.Hepsi bu!

Fonksiyonlarda özellikle geri döndürmek için bir veri tipi tanımlamanız gerekmez. Aslında bir veri geri döndürmenizde gerekmez. Bu tamamen sizin isteğinize bağlıdır. Eğer siz return komutunu kullanmazsanız fonksiyon otomatik olarak python için null değer olan None değerini döndürecektir.

Fonksiyonlarda tanıttığımız argümanlar örneğin bul(sayi) tanımlamasındaki sayi belirli bir veri tipi olarak tanımlanmamıştır. Python’da böyle bir tanımlama söz konusu değildir.Python’da herşey bir nesnedir ve bunların tipleri atandıkları ilk değerlerine bağlı olarak belirlenir, önceden bir tanımlama yapmanız gerektirmez. Python’un bu özelliğinin programcıya ayrı bir özgürlük alanı oluşturduğunu düşünüyorum.Ayrıca Python’da da Java’da olduğu gibi Integer bir değeri convert etmeden String bir değer gibi kullanamazsınız.

Şu an saat 01:45 olmasından ve yarın 8′de kalkıp gönüllü olarak çalıştığım bir projedeki görevime gitmem gerektiği için burada ara veriyoruz,umarım yarın en geç öbür gün yazıma devam etme fırsatı bulurum.

Kalın sağlıcakla…