Posted by admin on 17 Şubat 2010

Python Logo
- Python’da resim işlemek için standart bir kütüphane yok. Harici kütüphane olarak PIL kullanılabilir
- Herhangi bir resim dosyasını açmak için Image.open() kullanılıyor. Teker teker piksellere getpixel() fonksiyonuyla ulaşılabiliyor
- Herhangi bir ASCII kodu karaktere çevirmek için chr() fonksiyonu kullanılıyor
- Herhangi bir listedeki değerleri tek string nesnesinde birleştirmek için sıkça join() fonksiyonu kullanılıyor. Örneğin
mesaj=[78, 110, 66, 101, 143, 114, 105, 116, 71]
print '(',''.join([chr(k) for k in mesaj]),')'
- Resim dosyası üzerine çizmek için ImageDraw modülü kullanılıyor. Örnek :
im = Image.new('1', (500,500), 1)
draw = ImageDraw.Draw(im)
draw.line(listOfXYTuples)
- Dosya silmek için os modülünün remove() fonksiyonu kullanılıyor. Örneğin :
os.remove('sample.png')
- QString’den python stringine dönüşümü str fonksiyonu ile yapiyoruz
- PyQt denemeleri yapmak için QtDesigner entegrasyonu olan ERIC IDE’sini denedim ama NetBeans çok daha rahat bu konuda.
Posted by Orhan Balci on 04 Şubat 2010

Python Logo
- Fonksiyon tanımlamak için def anahtar kelimesini kullanıyoruz. Fonksiyon çağrılmadan önce tanımlanmış olmalı
- from … import … ifadesinde birinci importtan sonra gelen yere modül adı importtan sonra gelen yere de fonksiyon adı giriliyor. Yani fonksiyonu import etme durumu var. Modül ednilen şey de bağımsız .py uzantılı dosyalar.
- Anladığım kadarıyla fonksiyona parametreler pass-by-value yöntemiyle gönderiliyor.
def fonksiyon(isim ):
print "Fonksiyondan çağrıldı", isim
isim = "hübele"
isim = "hebele"
fonksiyon(isim)
print isim
kod parçacığı
Fonksiyondan çağrıldı hebele
hebele
çıktısını veriyor.
- Hemen bir recursive fonksiyon deneyip fibonacci yazıyorum. Sorun yok
def fibonacci(number):
if number == 0:
return 0
elif number == 1:
return 1
else:
return number + fibonacci(number-1)
print fibonacci(5)
- Modülleri import ederken from “modül_adı import *” kullandığımızda “__” ile başlayan fonksiyonları import etmiyormuş dikkat etmek gerek
- Klasör oluşturma,silme,klasör içeriğini listeleme,harici çalıştırılabilir dosya çalıştırma, process açma kapama gibi işlemlerios modülü aracılığıyla yapıyoruz. Hayati öneme sahip.
- Herhangi bir modülde hangi fonksiyonların olduğunu öğrenmek için dir(module_adı) kullanılıyor.
- Text dosya okumak,yazmak çok kolay. Sadece open, write, close gibi fonksiyonlar kullanılıyor. Ama open dedikten sonra size dönen değişkenin tipini anlayamadım doğrusu. Fonksiyonlar modül dönebiliyorlar mı?
-
dosya = open("testdosyasi.txt","w")
print type(dosya)
çıktı olarak type ‘file’ veriyor. Bu file tipi nerede tanımlanmış onu bilmem lazım.
- Matematikte üstlü sayıları hesaplamak için ** operatörü kullanılıyor
- zip dosyalarıyla ilgili işlemler yapmak için zipfile modülü mevcut. Komut satırından zip dosyası açmak kadar kolay kullanımı var
- Bir dosyanın zip dosyası olup olmadığını kontrol etmek için is_zipfile() fonksiyonu mevcut
- zip dosyası içinden herhangi bir dosya çıkarmak için extract() dosya meta verisine ulaşmak için getinfo() fonksiyonları mevcut.
Posted by Orhan Balci on 02 Şubat 2010

Python Logo
- http://www.istihza.com buradaki python2.x derslerini takip ediyorum
- from … import … ifadeleri sayfanın başına yazılmalıymış
- from’dan sonra gelen şeyin paket importtan sonra gelen şeyin sınıf tarzı bir şey olduğunu zannediyorum
- Türkçe karakterleri kullanabilmek için #_*_ coding: utf-8 _*_ yazıyoruz. Yine sayfamızın en başına ekliyoruz bunu
- print fonksiyonuna birden fazla argüman verirken , kullanıyoruz
- Kullanıcıdan girdi input() ve raw_input() fonksiyonları ile alınıyor. input() nümerik değer dönerken, raw_input() string değer dönüyor
- pre/post increment/decrement (++/–) operatörleri mevcut değil.
a = 1
while a < 10:
print "Daha Bitmedi"
++a;
ifadesi sonsuz döngüye sebep oluyor. Syntax hatası vermedi ilginç!
- döngülerde range() fonksiyonu kullanılıyor. Bu fonksiyon Matlab’dan tanıdık geldi bana.
- Java ve C++ dan bildiğim liste veri yapısı Python’da built in type olarak karşıma çıktı. Kullanımı çok kolay. append(), insert() gibi fonksiyonlarla düzenleme yapmak pratik.
- Liste içinde farklı veri tipleri barınabiliyor.
- Listeler + operatörü ile birleştirlebiliyor fakat – operatörü tanımlı değil
- pop() listenin son elemanını atıyor
- Listeler tersten indekslenebiliyor liste[-1] son elemanı gösteriyor. Büyük kolaylık
- Matlab’da bulunan aralık indeksleme yöntemi mevcut. Liste[1:3] 1. eleman dahil 3. eleman dahil olmamak kaydıyla aralıktaki elemanları belirtiyor
- Değiştirilemeten bir liste yapısı (tuple) var. Bunun tam olarak ne işe yaradığından emin değilim.
- HashTable benzeri sözlük veri yapısı da built in type olarak mevcut. Farklı bir özellik olarak tüm anahtarlar aynı tipte olmak zorunda değil. Scripting diye buna diyorlar herhalde