PYTHON www.arslanacar.com Arslan ACAR



Benzer belgeler
KISIM I: TEMEL KONULAR 1

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Ç NDEK LER KISIM I: TEMEL KONULAR 1 TEMEL B LG LER 3 Python u Nereden Bulabilirim? 4 GNU/Linux 4 Microsoft Windows 5 Python Nas l Çal flt r l r?

Python ile Programlamaya Giris

Python Programlama Dili

PYTHON PROGRAMLAMA DİLİ

PYTHON PROGRAMLAMA DİLİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

Bolum 9. Konu Başlıkları

Internet Programming II

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

Bilgisayar Programlama MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB

SAB104 Bilgisayar Programlama

Internet Programming II

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Yukarıdaki kod aksi belirtilmediği sürece sürekli çalışır. Yani ekrana sürekli Bilgisayar çıldırdı! yazısı gelir. Ancak;

Fonksiyonlar (Altprogram)

Dr. Fatih AY Tel:

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C#(Sharp) Programlama Dili

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

BİL-142 Bilgisayar Programlama II

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

C Konsol Giriş Çıkış Fonksiyonları

YAZILIM VE PROGRAMLAMA DİLİ. Donanım ve yazılım nedir? Yazılım nedir? Yazılım çeşitleri nelerdir? Programlama dili nedir

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Print Komutu ile Değişkenleri Yazdırmak

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MatLab. Mustafa Coşar

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

BİL-142 Bilgisayar Programlama II

HSancak Nesne Tabanlı Programlama I Ders Notları

PROGRAMLAMAYA GİRİŞ DERS 2

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

İnternet Programcılığı Dersi 2.Dönem Ders Notu

İçindekiler. KISIM 1 Temel Programlama 1. Bölüm 1: Programlama ve Python 3. Bölüm 2: Değişkenler, İfadeler ve Deyimler 13. Giriş 4

Android Ders Notları

İNTERNET TABANLI PROGRAMLAMA

Standart Veri Tipleri

HSancak Nesne Tabanlı Programlama I Ders Notları

Dr. Fatih AY Tel: fatihay@fatihay.net

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Python Programlama Dili

NESNEYE YÖNELİK PROGRAMLAMA

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

Python Programlama Dili

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Girdi Çıktı İşlemleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

İNTERNET TABANLI PROGRAMLAMA- 4.ders

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

WORD KULLANIMI

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

PYTHON 3. Python Nedir? Yrd. Doç. Dr. Murat Olcay ÖZCAN

BİLGİSAYAR PROGRAMLAMA DERSİ

Python Programlama Dili

Temel Excel Kullanım Bilgisi

Programlama Dili Prensipleri. Lab Notları 8 ve 9

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Python ile Programlamaya Giris

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad.

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Metin İşlemleri, Semboller

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Burada dikkat edilmesi gereken nokta, bilinmeyen veya değişkeninizi yazarken diğer bilinmeyenler ile arasına boşluk koymanız gerektiğidir.

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

4 Front Page Sayfası Özellikleri

Karakter Değişkenlere İlişkin Komutlar

4. Bölüm Programlamaya Giriş

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

YZM 2105 Nesneye Yönelik Programlama

PROGRAMLAMA DİLİ (2009)

Klavye Kullanımı KLAVYE KULLANIMI

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

Excel' de formüller yazılırken iki farklı uygulama kullanılır. Bunlardan;

Mantıksal Kontrol ve Döngü Komutları

C# ile NJ Simulatöre Bağlanmak

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

ile Python gibi kod yazma

// hataları işaret eden referans

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

HESAP MAKİNASI YAPIMI

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Transkript:

1

Başlangıç : ALT+F2 : Uygulama Çalıştır ekranını açar. gnome-terminal : Uygulama Çalıştır ekranından Terminal uygulamasını(komut satırı) başlatır. python : Terminal ekranından python programlama dilini başlatır. # : Açıklama satırı İşleçler : + :Toplama - :Çıkarma / :Bölme * :Çarpma > :Büyüktür < :Küçüktür == :Eşittir >= :Büyük eşittir <= :Küçük eşittir!= :Eşit değildir and :ve or :veya True :doğru False :yanlış Print Komutu : print "Python" print 2+3 print "%s ile %s toplamı %s dir" %(3,5,3+5) print "%s işletim sisteminde %s dilini çalışıyorum" %("LinuxMint","Python") Değişkenler : n=5 m="arslan" METİN DÜZENLEYİCİ KULLANARAK PYTHON PROGRAMI YAZMAK deneme1.py sayi1=1 sayi2=11 sayi3=111 print "Sayi1=",sayi1 print "Sayi2=",sayi2 print "Sayi3=",sayi3 raw_input ("") Programı Çalıştırmak : python deneme1.py Programı executable Haline Getirmek : chmod a+x deneme1.py : Yazılan metnin PYTHON programı olduğunu belirtir. Sistemin PYTHON programını algılamasını sağlar. : Türkçe karakterli çıktı alabilmemizi sağlar. (Linux) #_*_ coding: cp1254 _*_ : Türkçe karakterli çıktı alabilmemizi sağlar. (Microsoft) 2

raw_input() Komutu: #Girilen veriyi string olarak algılar. ornek_raw_input.py degiskenisim = raw_input("lütfen Adınızı Giriniz:") print "Selam %s" %(degiskenisim) raw_input("") input() Komutu: #Girilen veriyi integer(tamsayı) olarak algılar. ornek_input.py degiskensayi = input("lütfen Bir Sayı Giriniz:") print "Girilen Tamsayı: %s" %(degiskensayi) raw_input("") if-elif-else Komutu : ornek_if.py sayi = input("bir sayi giriniz :") if sayi==10: print "Girilen sayı 10'a eşittir..." elif sayi < 10: print "Girilen sayı 10'dan küçüktür..." else: print "Girilen sayı 10'dan büyüktür..." raw_input("") while Döngüsü: ornek_while.py sayi = 0 while sayi < 10: sayi = sayi+1 print sayi raw_input("") 3

ornek_hesapmakinesi.py from future import division #Her zaman kesin sonuçlar bulması için devam = True while devam == True: print " " print " MENU " print " " print " (1)Toplama " print " (2)Çıkarma " print " (3)Çarpma " print " (4)Bölme " print " (5)Çıkış " print " " print "" secim= raw_input ("Lütfen yapacağınız işlem numarasını seçiniz :") if secim == "1": sayi1=input("sayi1:") sayi2=input("sayi2:") print sayi1,"+",sayi2,"=",sayi1+sayi2 elif secim == "2": sayi1=input("sayi1:") sayi2=input("sayi2:") print sayi1,"-",sayi2,"=",sayi1-sayi2 elif secim == "3": sayi1=input("sayi1:") sayi2=input("sayi2:") print sayi1,"*",sayi2,"=",sayi1*sayi2 elif secim == "4": sayi1=input("sayi1:") sayi2=input("sayi2:") print sayi1,"/",sayi2,"=",sayi1/sayi2 elif secim == "5": devam = False else : print "Hatalı işlem Seçimi...!!!" print " " print " (1)Devam " print " (2)Çıkış " print " " secim= raw_input ("Lütfen yapacağınız işlem numarasını seçiniz :") if secim == "1": devam = True elif secim == "2": devam = False else : print "Hatalı işlem Seçimi...!!!" secim= raw_input ("Lütfen yapacağınız işlem numarasını seçiniz :") 4

for Döngüsü: ornek_for.py for i in range(1,10): print i raw_input("") range() Fonksiyonu: ornek_range.py print range(20) #0-20 arası sayıları listeler (20 hariç) print range(1,20) #1-20 arası sayıları listeler (20 hariç) print range(1,20,2) #1-20 arası sayıları 2 şer arttırarak listeler (20 hariç) raw_input("") len() Fonksiyonu: ornek_len.py string = "Afyonkarahisar" print len(string) #verilen stringin uzunluğunu döndürür. raw_input("") break Deyimi: ornek_break.py while True: secim = raw_input("programdan çıkmak istiyormusunuz??? (E/H):") if secim == "E" or secim =="e": break #break komutu işlendiği anda program sonlanır. 5

continue Deyimi: ornek_continue.py while True: secim = raw_input("programdan çıkmak istiyormusunuz??? (E/H):") if secim == "E" or secim =="e": break #break komutu işlendiği anda program sonlanır. else: continue #continue if-else döngüsünün dışına çıkışı sağar. PYTHON'Da Listeler,Demetler ve Sözlükler Listeler liste=["arslan","acar",1453] #listeye öğe ekler. len(liste) #listedeki öğe sayısını verir. liste.append("reis") #listeye yeni öğe ekler. liste[0] #listedeki 0. öğeyi gösterir. liste.insert(2,"haci") #listenin istenilen sırasına öğe ekler. liste.extend(yeni_liste) #liste ile yeni_liste yi birleştirir. liste = liste + yeni_liste #liste ile yeni_liste yi birleştirir. liste.remove("haci") #listeden belirtilen öğeyi siler. liste.pop(4) #listeden belirtilen sıradaki öğeyi ekranda gösterir ve siler. degisken = liste.pop(4) #listeden belirtilen sıradaki öğeyi degisken'e aktarır ve listeden siler. liste.pop() #listedeki son öğeyi ekranda gösterir ve siler. 6

liste.index("acar") #ACAR öğesinin listedeki sırasını döndürür. liste.sort() #listedeki öğeleri alfabe sırasına göre listeler. liste.reverse() #listedeki öğelerin sırasını ters yüz eder. liste.count("acar") #listede belirtilen öğenin kaç kez tekrarlandığını döndürür. liste[0] #listenin ilk öğesini döndürür. liste[-1] #listenin son öğesini döndürür. liste[-2] #listenin sondan bir önceki öğesini döndürür. liste[1:3] #listenin 1 ve 2. öğesini döndürür. liste[:3] #listenin 0,1 ve 2. öğesini döndürür. liste[0:] #listenin tamamını döndürür. liste[2:2]=["test1","test2"] #listede 2. öğeden itibaren öğeleri ekler. liste[2:4]=[] #listeden 2 ve 3. öğeleri siler. liste[2:3]=["ekle1","ekle2"] #listede 2. öğeyi siler ve yerine 2 tane öğe ekler. liste[2]=["degistir1","degistir2"] #listede 2. öğeyi siler ve yerine 2 tane öğeden oluşan bir liste ekler. Demetler #Sabit listelerdir.içerikleri program içerisinde değiştirilemez. sabitdemet = "Arslan","ACAR",1453,1881 #4 öğeli bir demet oluşturur. sabitdemet = ("Arslan","ACAR",1453,1881) #4 öğeli bir demet oluşturur. sabitdemet = () #Boş bir demet oluşturur. 7

sabitdemet = ("Türk",) #Tek öğeli bir demet oluşturur. Sağ tarafa virgül koymazsak karakter dizisi oluşturmuş oluruz. >>> bilgilerdemet = ("Arslan","ACAR","Turk") >>> ad,soyad,milliyet = bilgilerdemet >>> ad 'Arslan' >>> soyad 'ACAR' >>> milliyet 'Turk' #Demetten veri okumak Sozlukler sozluk = {"anahtar1": "deger1", "anahtar2": "deger2"} >>> sozlukbilgiler = {"ad": "Arslan",... "soyad": "ACAR",... "milliyet": "Turk"} #Virgülden sonra ENTER tuşuna basarak sozluk'e ekleme yapılmaya devam edilebilir. >>> sozlukbilgiler {'soyad': 'ACAR', 'milliyet': 'Turk', 'ad': 'Arslan'} #Sozluk içeriğini görüntüler. >>> sozlukbilgiler["ad"] 'Arslan' #Belirtilen anahtarın degerini görüntüler. >>> sozlukbilgiler["meslek"] = "Bilgisayar" #Sozluğe yeni veri ekler veya varolan anahtarın değerini değiştirir. >>> del sozlukbilgiler["meslek"] #Belirtilen anahtarı ve degerini siler. >>> sozlukbilgiler.clear() #Sözlüğün tüm öğelerini siler. >>> print sozlukbilgiler.keys() ['soyad', 'milliyet', 'ad'] #Sözlükteki tüm anahtarları gösterir. >>> print sozlukbilgiler.values() ['ACAR', 'Turk', 'Arslan'] #Sözlükteki tüm değerleri gösterir. >>> sozlukbilgiler.items() [('soyad', 'ACAR'), ('milliyet', 'Turk'), ('ad', 'Arslan')] #Sözlükteki tüm anahtar ve değerleri gösterir. 8

Fonksiyonlar ornek_function1.py def ekranyaz(): print "Arslan ACAR" ekranyaz() ornek_function2.py def ekranyaz(): print "Arslan ACAR" ekranyaz() ornek_function_carpma.py def carpma(liste): a = 1 for i in liste: a = a * i print(a) carpma([3,5,7]) global Deyimi : ornek_function_global.py def test(): global a a = 1 print a test() print a #Değişkeni fonkisyon için global olarak tanımlamazsak fonksiyon dışında kullanamayız. 9

return Deyimi : ornek_function_return.py def test(): a = 1 return a print test() #Fonksiyon sonunda veri döndürme işini return deyimi ile yaparız. pass Deyimi : ornek_function_pass.py def test(): for i in range(1,10): if i == 5: pass else: print i test() #Bu program 5 sayısı haricinde 1 den 10'a kadar (10 dahil değil) yazdırır. Program pass deyimini gördüğü satırı işlem yapmadan es geçer. MODULLER ornek_module.1.py import ornek_module_test ornek_module_test.yaz("ekrana Yazilacak...!!!") ornek_module.test.py def yaz(cikti): print cikti import ornek_module_test #Belirtilen modulu programa ekleriz. dir(ornek_module_test) #Belirtilen modulun içerisindeki fonksiyonların listesini döndürür. 10

ornek_module_test.yaz("ekrana Yazilacak...!!!") #Belirtilen modulun belirtilen fonksiyonunu çağırır. from ornek_module_test import * #Belirtilen modulu programa ekleriz. Eklenen modulde kullanılacak fonksiyonun başında modul adının kullanılmasına gerek kalmaz. Ama program akşında risk taşıdığından önerilmez. from ornek_module_test import yaz, listele #Moduldeki istenilen fonksiyonları programa ekleriz. reload(ornek_module_test) #Modulde değişiklik yapıldıysa, programa son değişiklikleri ile tekrar yüklenmesini sağlar. import ornek_module_test as yeni_modul_adi #Modulu programa ekler ve ismini değiştirir. Modul programda farklı isimle çağırılır. OS MODÜLÜ #os modülü ile işletim sistemi üzerinde işlem yapabilmemizi sağlar. #os mudülünü kullanarak programımızın farklı işletim sistemlerinde çalışma şansını arttırırız. >>> import os #os modülünü programa import eder. >>> dir(os) #os modülünde bulunan fonksiyon ve nitelikleri listeler. ornek_os_dir.py import os for osfonksiyonlari in dir(os): print osfonksiyonlari os Fonksiyon ve Nitelikleri : os.name #Kullanılan işletim sisteminin ne olduğunu verir. GNU/Linux : posix Windows : nt dos ce Macinthos : mac OS/2 : os2 os.listdir("/home/maya/belgeler/") #Belirtilen dizin içerisindeki dosya ve klasörleri listeler os.getcwd() #O anda hangi dizinde bulunduğumuzu gösterir. os.chdir(os.pardir) #Bulunulan dizinin bir üst dizinine geçer. 11

os.listdir(os.curdir) #Bulunulan dizinde işlem yapmamızı sağlar os.chdir("/home/maya/belgeler") #Belirttiğimiz dizine geçiş yapmamızı sağlar. Yeni Klasör Oluşturmak : os.mkdir("./turk") #Bulunulan dizinde belirtilen isimde bir klasör oluşturur. os.mkdir("acar") #Bulunulan dizinde belirtilen isimde bir klasör oluşturur. os.mkdir("/home/maya/belgeler/turk/arslan") #Belirtilen dizinde belirtilen isimde yeni bir klasör oluşturur. os.makedirs("/home/maya/turk/otuken") #Çoklu klasör oluşturur. Belirtilen dizinde Turk adlı klasör ve onun altına Otuken adlı bir klasör oluşturur. os.rmdir( Acar ) #Bulunulan dizindeki Acar adlı klasörü siler. os.rmdir("/home/maya/belgeler/turk/arslan") #Belirtilen dizindeki Arslan adlı klasörü siler. Klasörün boş olması gerekmektedir. os.removedirs("acar/turk") #Bulunulan dizindeki Acar ve onun altındaki Turk adlı klasörleri siler. os.makedirs("acar/arslan") os.makedirs("acar/turk") # Acar klasörünün altına Arslan ve Turk adlı iki tane klasör oluşturur. os.sep #Kullanılan işletim sistemine ait dizin ayraç ifadesi bilgisini verir. os.makedirs("acar" + os.sep + "Arslan") os.makedirs("acar" + os.sep + "Turk") # Acar klasörünün altına Arslan ve Turk adlı iki tane klasör oluşturur. Arada kullanmamız gereken / yerine os.sep kullanmak daha mantıklı. Her işletim sisteminde dizin ayraç ifadesi farklı olur. Programımızı farklı işletim sistemlerinde kullanmak için os.sep kullanmak iyi bir çözümdür. >>> os.sep.join(["dizin1","dizin2"]) 'Dizin1/Dizin2' #os.sep ile dizin adlarının oluşturulmasında join fonksiyonunuda kullanabiliriz. Yeni Dosya Oluşturmak : open("testdosya.txt","w") #Bulunulan dizinde yazma yetkisinde yeni bir dosya oluşturur. Eğer belirtilen isimde bir dosya mevcut ise; o dosyadaki tüm verilen silinir ve dosya baştan yeniden oluşturulur. w : (Write) Yazma yetkisi r : (Read) Okuma yetkisi a : (Append) Ekleme yetkisi 12

dosyaolustur = open("testdosya.txt","w") #Yeni dosya oluşturma işlemini, komutu bir değişkene aktararak da yapabiliriz. Uygulama geliştirme esnasında faydalı bir kullanım şekli. dosyaolustur = open("/home/maya/belgeler/acar/testdosya.txt","w") #Belirtilen dizinde yeni bir dosya oluşturur. os.rename("testdosya.osd","testdosyayeniad.osd") #Dosya adını değiştirir. os.remove("testdosya.osd") #Belirtilen dosyayı siler. Dosya Veri İşlemleri Dosyaya Veri Ekleme İşlemi : write() Fonksiyonu : ornek_dosya_olustur.py degiskendosya = open("testdosya.osd","w") degiskendosya.write("test icerik") degiskendosya.close() #Dosya oluşturulur ve veri ekleme işlemini yapar. ornek_dosya_veri_ekle.py degiskendosya = open("testdosya.osd","a") degiskendosya.write("\n\tbir tab saga yazar.") degiskendosya.write("\neklenen Test icerik") degiskendosya.close() #Varolan dosyaya yeni veri ekleme işlemini yapar. # \n Bir alt satıra geçmemizi sağlar. # \t Bir tab sağa yazmamızı sağlar. writelines() Fonksiyonu : ornek_dosya_veri_ekle_writelines.py degiskendosya = open("testdosya.osd","a") degiskendosya.writelines(["\neklenen Test icerik", "\neklenen Test icerik", "\neklenen Test icerik",]) degiskendosya.close() 13

Dosya Veri İşlemleri Dosyadan Veri Okuma İşlemi : read() Fonksiyonu : ornek_dosya_veri_oku_read.py degiskendosya = open("testdosya.osd") print degiskendosya.read() degiskendosya.close() readlines() Fonksiyonu : ornek_dosya_veri_oku_readlines.py degiskendosya = open("testdosya.osd") print degiskendosya.readlines() degiskendosya.close() #readlines() fonksiyonunun en önemli özelliği Türkçe karakter probleminin olmasıdır. readline() Fonksiyonu : ornek_dosya_veri_oku_readline.py degiskendosya = open("testdosya.osd") print degiskendosya.readline() degiskendosya.close() #readline() fonksiyonu sade dosyanın ilk satırını okur. for Döngüsü İle Dosyadan Veri Okunması : ornek_dosya_veri_oku_for.py degiskendosya = open("testdosya.osd") for satiroku in degiskendosya: print satiroku degiskendosya.close() 14

Dosyaya Değişken Değeri Yazdırmak : ornek_dosya_degisken_yazdir.py degiskendeger = "Arslan ACAR" degiskendosya = open("testdosya.osd","a") degiskendosya.write(str(degiskendeger)) degiskendosya.close() str(degisken) : değişken değerini stringe (karakter) çevirir. int(degisken) : değişken değerini integer'e (sayı) çevirir. Dosyaya Silmek : ornek_dosya_sil.py import os os.remove("/media/arslan 32GB/PYTHON_Deneme/testDosya.osd") Dosyanın Herhangi Bir Yerine Satır Eklemek : ornek_dosya_herhangi_bir_yere_deger_yazdir.py degiskenkaynak = open("testkaynak.osd") degiskenhedef = open("testhedef.osd","a") dosyaoku = degiskenkaynak.readlines() for satir in dosyaoku[0:2]: degiskenhedef.write(satir) degiskenkaynak.close() degiskenhedef.close() 15

Hata Gidermek : Hata Yakalamak (try except) : ornek_try_except.py while True: try: sayi1 = input("toplama Icin Ilk Sayi Giriniz : ") sayi2 = input("toplama Icin Ikinci Sayi Giriniz : ") print sayi1 + sayi2 except: print "Hatali Deger Girdiniz...!!!" Değişken Türü Hatalarını Yakalamak (try except NameError) : ornek_try_except_nameerror.py while True: try: sayi1 = input("toplama Icin Ilk Sayi Giriniz : ") sayi2 = input("toplama Icin Ikinci Sayi Giriniz : ") print sayi1 + sayi2 except NameError: print "Girilen degerler sayi olmazsa islem yapilamaz...!!!" Söz Dizimi Hatalarını Yakalamak (try except SyntaxError) : ornek_try_except_syntaxerror.py while True: try: sayi1 = input("toplama Icin Ilk Sayi Giriniz : ") sayi2 = input("toplama Icin Ikinci Sayi Giriniz : ") print sayi1 + sayi2 except NameError: print "Girilen degerler sayi olmazsa islem yapilamaz...!!!" except SyntaxError: print "Yazim hatasi yaptiniz...!!!" 16

Dosya İşlemi Hatalarını Yakalamak (try except IOError) : ornek_try_except_ioerror.py try: dosyaac = open("/home/user/documents/python_deneme/test.txt","r") dosyaac.close() except IOError,(hataKodu,hataAdi): if hatakodu == 2: print "Belirtilen Dosya Bulunamadi...!!!" if hatakodu == 13: print "Belirtilen Dosya icin Okuma Yetkiniz Yok...!!!" Hataları Es Geçmek (try except pass) : ornek_try_except_pass.py try: dosyaac = open("/home/user/documents/python_deneme/test.txt","r") dosyaac.close() except: pass Karakter Dizisi Metotları : dir() Metodu : >>> dir(str) #Karakter dizisi metotlarını listeler >>> dir("") #Karakter dizisi metotlarını listeler >>> dir("herhangistring") #Karakter dizisi metotlarını listeler >>> dir(list) #Liste metotlarını listeler >>> dir(dict) #Sözlük metotlarını listeler capitalize() Metodu : >>> degisken = "arslan" >>> degisken.capitalize() 'Arslan' #Karakter dizisinin ilk harfini büyük harfe çevirir. upper() Metodu : 17

>>> degisken = "arslan" >>> degisken.upper() 'ARSLAN' #Karakter dizisinin tamamını büyük harfe çevirir. lower() Metodu : >>> degisken = "ARSLAN" >>> degisken.lower() 'arslan' #Karakter dizisinin tamamını küçük harfe çevirir. swapcase() Metodu : >>> degisken = "ArSlaN" >>> degisken.swapcase() 'arslan' #Karakter dizisi içindeki büyük harfleri küçük harfe, küçük harfleri büyük harfe çeviri. title() Metodu : >>> degisken = "arslan acar" >>> degisken.title() 'Arslan Acar' #Karakter dizisindeki tüm kelimelerin ilk harflerini büyük harfe çeviri. center() Metodu: >>> degisken = "Arslan" >>> degisken.center(20) ' Arslan ' #Karakter dizisinin boyutunu,sağına soluna boşluk koyarak ve ortalayarak belirtilen boyuta ayarlar. >>> degisken = "Arslan" >>> degisken.center(20,"#") '#######Arslan#######' #Karakter dizisinin boyutunu,sağına soluna istenilen karakteri koyarak ve ortalayarak belirtilen boyuta ayarlar. ljust() Metodu : >>> degisken = "Arslan" >>> degisken.ljust(20) 'Arslan ' #Karakter dizisinin boyutunu,sağına boşluk koyarak ve sola yaslayarak belirtilen boyuta ayarlar. >>> degisken = "Arslan" >>> degisken.ljust(20,"*") 'Arslan**************' #Karakter dizisinin boyutunu,sağına istenilen karakteri koyarak ve sola yaslayarak belirtilen boyuta ayarlar. 18

rjust() Metodu : >>> degisken = "Arslan" >>> degisken.rjust(20) ' Arslan' #Karakter dizisinin boyutunu,soluna boşluk koyarak ve sağa yaslayarak belirtilen boyuta ayarlar. >>> degisken = "Arslan" >>> degisken.rjust(20,"*") '**************Arslan' #Karakter dizisinin boyutunu,soluna istenilen karakteri koyarak ve sağa yaslayarak belirtilen boyuta ayarlar. zfill() Metodu : >>> degisken = "Arslan" >>> degisken.zfill(13) '0000000Arslan' #Karakter dizisinin boyutunu,soluna istenilen sayıda 0(sıfır) koyarak ve sağa yaslayarak belirtilen boyuta ayarlar. replace() Metodu : >>> degisken ="Arslan Acar" >>> degisken.replace("a","*") 'Arsl*n Ac*r' #Karakter dizisinde ilk belirtilen karakterler, ikinci belirtilen karakterle yer değiştirir. >>> degisken ="Arslan Acar" >>> degisken.replace("a","") 'Arsln Acr' #Karakter dizisinde ilk belirtilen karakterler silinir. >>> degisken =" Arslan Acar" >>> degisken.replace(" ","") 'ArslanAcar' #Karakter dizisindeki boşluklar silinir. >>> degisken ="Arslan Acar" >>> degisken.replace("a","",1) 'Arsln Acar' #Karakter dizisinde ilk belirtilen karakterler istenilen sayıda silinir. startswith() Metodu : >>> degisken ="Arslan Acar" >>> degisken.startswith("a") True #Karakter dizisinin belrtilen karakterle başlayıp başlamadığını gösterir. >>> degisken ="Arslan Acar" >>> degisken.startswith("a") False #Karakter dizisinin belrtilen karakterle başlayıp başlamadığını gösterir. 19

endswith() Metodu : >>> degisken ="Arslan Acar" >>> degisken.endswith("r") True #Karakter dizisinin belrtilen karakterle bitip bitmediğini gösterir. >>> degisken ="Arslan Acar" >>> degisken.endswith("r") False #Karakter dizisinin belrtilen karakterle bitip bitmediğini gösterir. count() Metodu : >>> degisken = "arslan acar" >>> degisken.count("a") 4 #Karakter dizisinde belirtilen karakterden kaç adet olduğunu veriri. >>> degisken = "arslan acar" >>> degisken.count("") 12 #Karakter dizisindeki karakter sayısının bir vazlasını verir. isalpha() Metodu : >>> degisken ="ArslanAcar" >>> degisken.isalpha() True #Karakter dizisinde sadece harfler olup olmadığını gösterir. >>> degisken ="Arslan Acar" >>> degisken.isalpha() False #Karakter dizisinde sadece harfler olup olmadığını gösterir. Boşluk'ta harf olmayan bir karakterdir. >>> degisken ="ArslanAcar13" >>> degisken.isalpha() False #Karakter dizisinde sadece harfler olup olmadığını gösterir. Sayılarda harf olmayan bir karakterdir. isdigit() Metodu : >>> degisken = "1453" >>> degisken.isdigit() True #Karakter dizisinde sadece sayılar olup olmadığını gösterir. >>> degisken = "14 53" >>> degisken.isdigit() False #Karakter dizisinde sadece sayılar olup olmadığını gösterir. Boşluk'ta sayı olmayan bir karakterdir. 20

>>> degisken = "Arslan1453" >>> degisken.isdigit() False #Karakter dizisinde sadece sayılar olup olmadığını gösterir. Harflerde sayı olmayan bir karakterdir. isalnum() Metodu : #Karakter dizisinde sadece harfler ve sayılar olup olmadığını gösterir. >>> degisken = "Arslan1453" >>> degisken.isalnum() True >>> degisken = "Arslan1453*" >>> degisken.isalnum() False islower() Metodu : #Karakter dizisinin sadece küçük harflerden oluşup oluşmadığını gösterir. >>> degisken = "arslan" >>> degisken.islower() True degisken = "Arslan" >>> degisken.islower() False isupper() Metodu : #Karakter dizisinin sadece büyük harflerden oluşup oluşmadığını gösterir. >>> degisken = "ARSLAN" >>> degisken.isupper() True >>> degisken = "Arslan" >>> degisken.isupper() False istitle() Metodu : #Karakter dizisinin ilk harfinin büyük harf olup olmadığını gösterir. >>> degisken = "Arslan" >>> degisken.istitle() True >>> degisken = "arslan" >>> degisken.istitle() False 21

isspace() Metodu : #Karakter dizisinin tamamen boşluk karakterinden oluşup oluşmadığını gösterir. >>> degisken = " " >>> degisken.isspace() True >>> degisken = "Arslan " >>> degisken.isspace() False expandtabs() Metodu : #Karakter dizisinin içerisindeki tab uzunluğunu ayarlar. >>> degisken = "Arslan\tACAR" >>> print degisken Arslan ACAR >>> print degisken.expandtabs(10) Arslan ACAR find() Metodu : #Karakter dizisinin içerisinde belirlenen bir karakterin yerini verir. İlk bulduğu karakterin yerini döndürür. Eğer karakteri bulamazsa -1 döndürür. >>> degisken = "Arslan" >>> degisken.find("r") 1 #Karakter dizisinde istenilen noktalar arası aramada yapılabilir. degisken.find("aranacak_karakter","başlangıç","bitiş") >>> degisken = "Arslan Acar" >>> degisken.find("a",7,10) 9 rfind() Metodu : #Karakter dizisinin içerisinde belirlenen bir karakterin yerini verir. Sağdan sola okur. >>> degisken = "Arslan Acar" >>> degisken.rfind("r") 10 index() Metodu : #Karakter dizisinin içerisinde belirlenen bir karakterin yerini verir. İlk bulduğu karakterin yerini döndürür. Eğer karakteri bulamazsa Hata Mesajı döndürür. >>> degisken = "Arslan Acar" >>> degisken.index("r") 1 22

rindex() Metodu : #Karakter dizisinin içerisinde belirlenen bir karakterin yerini verir. İlk bulduğu karakterin yerini döndürür. Eğer karakteri bulamazsa Hata Mesajı döndürür.sağdan sola okur. >>> degisken = "Arslan Acar" >>> degisken.rindex("r") 10 join() Metodu : #Karakter dizisindeki her karakterin arasına istenilen karakteri ekler. >>> degisken = "Arslan Acar" >>> "_".join(degisken) 'A_r_s_l_a_n A_c_a_r' partition() Metodu : #Karakter dizisini belirtilen ölçüte göre üç parçaya ayırır. >>> degisken = "Arslan" >>> degisken.partition("rs") ('A', 'rs', 'lan') rpartition() Metodu : #Karakter dizisini belirtilen ölçüte göre üç parçaya ayırır. Karakter dizisini sağdan sola okur. >>> degisken = "Arslan" >>> degisken.rpartition("la") ('Ars', 'la', 'n') strip() Metodu : #Karakter dizisinin sağında ve solunda bulunan boşlukları ve yeni satır (\n) ları siler. >>> degisken =" Arslan\n " >>> degisken.strip() 'Arslan' rstrip() Metodu : #Karakter dizisinin sağında bulunan boşlukları ve yeni satır (\n) ları siler. >>> degisken =" Arslan\n " >>> degisken.rstrip() ' Arslan' lstrip() Metodu : #Karakter dizisinin solunda bulunan boşlukları ve yeni satır (\n) ları siler. >>> degisken =" Arslan\n " >>> degisken.lstrip() 'Arslan\n ' splitlines() Medotu : #Karakter dizisini satır kesme işaretinden (\n) bölerek liste öğeleri haline getirir. >>> degisken = "Arslan\nACAR" >>> degisken.splitlines() ['Arslan', 'ACAR'] 23

split() Metodu : #Karakter dizisi elemanlarını liste öğeleri haline getirir. >>> degisken = "Arslan, Acar, Turk" >>> degisken.split(",") ['Arslan', ' Acar', ' Turk'] rsplit() Metodu : #Karakter dizisi elemanlarını liste öğeleri haline getirir. Sağdan sola ekler. >>> degisken = "Arslan, Acar, Turk" >>> degisken.rsplit(",") ['Arslan', ' Acar', ' Turk'] Düzenli İfade Metotları : #Düzenli ifade metotlarını kullanabilmek için programa import etmek gerekir. import re match() Metodu : #Karakter dizisi içerisinde belirtilen kelimenin olup olmadığını döndürür. Yalnız karakter dizisinin ilk başına bakar. >>> degisken = "Arslan ACAR" >>> re.match("arslan",degisken) <_sre.sre_match object at 0xb59b2918> #Karakteri bulduğunda mesaj döner. >>> degisken = "Arslan Acar" >>> bulunan= re.match("arslan",degisken) >>> print bulunan.group() Arslan #İstersek bulduğumuz değeri group() metodu ile görebiliriz. >>> degisken = "Arslan Acar" >>> bulunan= re.match("acar",degisken) >>> print bulunan None #Bulamadığında None Döner. search() Metodu : #Karakter dizisi içerisinde belirtilen kelimenin olup olmadığını döndürür. Karakter dizisinin geneline bakar. >>> degisken = "Arslan Acar Turk Kizilcahamam" >>> re.search("turk", degisken) <_sre.sre_match object at 0xb59b2950> #Karakteri bulduğunda mesaj döner. 24

>>> degisken = "Arslan Acar Turk Kizilcahamam" >>> bulunan = re.search("turk", degisken) >>> print bulunan.group() Turk #İstersek bulduğumuz değeri group() metodu ile görebiliriz. >>> degisken = "Arslan Acar Turk Kizilcahamam" >>> bulunan = re.search("salin", degisken) >>> print bulunan None #Bulamadığında None Döner. findall() Metodu : >>> degisken = "Arslan Acar Arslan Acar Arslan Acar Arslan Acar" >>> print re.findall("acar",degisken) ['Acar', 'Acar', 'Acar', 'Acar'] #Karakter dizisinde istenilen kelimeyi bulur ve kaç tane bulduysa listeler. >>> degisken = "Arslan Acar Arslan Acar Arslan Acar Arslan Acar" >>> print re.findall("turk",degisken) [] #Bulamadığında [] döner. Metakarakterler (Ptyhon'a özel karakterler) : #Metakarakterler programlama dillerinde kullanılan özel sembollerdir. # [ ]. * +? { } ^ $ ( ) ornek_metakarakterler1.py import re liste = ["Arslan","Acar","Turk"] for i in liste: nesne = re.search("ars[l]an",i) if nesne: print nesne.group() 25

[ ] (Köşeli Parantez) : ornek_metakarakterler_koseli_parantez.py import re liste = ["1453Fetih","Ankara1402","1526Mohac","1071Malazgirt","Arslan13","1299Kurulus",] for i in liste: if re.match("[0-9]",i): print i #Listeden sadece sayı ile başlayan öğeleri getirir. #match metodu liste öğelerinin sadece ilk karakterlerine bakar.. (Nokta) : ornek_metakarakterler_nokta.py import re liste = ["Arslan","Acar","Turk"] for i in liste: nesne = re.search("ars.an",i) if nesne: print nesne.group() #Nokta metakarakteri sadece tek karakter için kullanılabilir. * (Yıldız) : ornek_metakarakterler_yildiz.py import re liste = ["Arslan","Arrslan","Arrrslan","Acar"] for i in liste: nesne = re.match("ar*s",i) if nesne: print nesne.group() #Yildiz metakarakteri kendinden önce belirtilen karakteri sıfır veya daha fazla eşleştirir. 26

ornek_metakarakterler_nokta_yildiz.py import re liste = ["sarki.mp3","turku.mp3","kayit.txt","ankaranin Baglari.mp3"] for i in liste: nesne = re.match(".*mp3",i) if nesne: print nesne.group() #.mp3 ile biten öğeleri gösterir. #Nokta metakarekteri her karakterin yerine geçer ve Yıldız metakarakteri kendisinden önce gelen karakterin sıfır ile daha fazla kez kullanılabilir hale gelmesini sağlar. Böyle.mp3 den öncesinin ne olduğu önemli değildir. + (Artı) : ornek_metakarakterler_arti.py import re liste = ["slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.match(".+slan",i) if nesne: print nesne.group() #Artı metakarakteri kendinden önce belirtilen karakteri en az bir veya daha fazla eşleştirir. # slan ile biten öğeleri gösterir. Ama (*) Yıldız metakarakterinden farklı olarak slan ifadesini yalnız başına göstermez.? (Soru İşareti) : ornek_metakarakterler_arti.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.match(".?slan",i) if nesne: print nesne.group() # slan ile biten öğeleri gösterir. Ama bu metakarakterin en temel özelliği kendinden önce tekrar eden karakterlerde 0 veya 1 defa tekrar edenleri göstermesidir. Yani bu örnekte sadece rslan ve slan öğelerini gösterir. 27

{ } (Küme Parantezi) : ornek_metakarakterler_kume_parantezi.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.match("ar{0,3}slan",i) if nesne: print nesne.group() #Küme Parantezi metakarakteri kendinden önce belirtilen karakteri istenilen sayıda eşleştirir. #"Ar{3}slan" Arrrslan öğesini döndürür. #"Ar{0,3}slan" Arslan Arrslan Arrrslan öğelerini döndürür. ^ (Şapka) : ornek_metakarakterler_sapka.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("[^a-z]+[a-z].*",i) if nesne: print nesne.group() #Şapka metakarakteri Köşeli Parantezin içinde kullanıldığında belirtilen ifadenin olumsuzunu oluşturur. Burada İlk harfi küçük olmayan ama ikinci harfi büyük olan öğeler seçildi. ornek_metakarakterler_sapka2.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("^ar",i) if nesne: print i #Şapka metakarakteri arama kriterinde aranılan öğenin nasıl başladığını belirtir. 28

$ (Dolar) : ornek_metakarakterler_dolar.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("^slan$",i) if nesne: print i #Dolar metakarakteri aranılan karakterin nasıl biteceğini belirtir. #re.search("slan$",i) slan ile biten bütün öğeleri döndürür. #re.search("^slan$",i) slan ile biten ve slan ile başlayan öğeyi döndürür. \ (Ters Bölü) : ornek_metakarakterler_ters_bolu.py import re liste = ["rslan$","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("[a-za-z]+\$",i) if nesne: print i #Ters Bolu metakarakteri Karakter dizilerinde metakarakterlerin aranmasında ve işlem yapılmasında kullanılır. (Dik Çizgi) : ornek_metakarakterler_dik_cizgi.py import re liste = ["rslan$","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("^a n$",i) if nesne: print i #Dik Çizgi metakarakteri birden fazla şekilde arama yapmamızı sağlar. Bu örnekte A ile baylayan öğeleri ve n ile biten öğeleri döndürür. 29

( ) (Parantez) : ornek_metakarakterler_dik_cizgi.py import re liste = ["rslan","slan","arslan","arrslan","arrrslan","acar"] for i in liste: nesne = re.search("(a.*) (.*n)",i) if nesne.group(1): print "A ile baslayan =%s" %(nesne.group(1)) if nesne.group(2): print "n ile biten =%s" %(nesne.group(2)) #Parantez metakarakteri sayesinde düzenli ifadelerini gruplayabiliriz. Eşleşme Nesneleri Metodları : group() Metodu : >>> import re >>> stringmetin = "Arslan Acar Turk" >>> tara = re.search("(arslan) (Acar) (Turk)",stringMetin) >>> print tara.group() Arslan Acar Turk #Eşleştirme yapılarak elde edilen verileri gruplayarak düzenli olarak görmemizi sağlar. >>> import re >>> stringmetin = "Arslan Acar Turk" >>> tara = re.search("(arslan) (Acar) (Turk)",stringMetin) >>> print tara.group() Arslan Acar Turk >>> print tara.group(0) Arslan Acar Turk >>> print tara.group(1) Arslan >>> print tara.group(2) Acar >>> print tara.group(3) Turk #Parantez boş bırakılır ya da 0 değeri verilirse karakter dizisinin tamamını döndürür. Eğer indeks numarası verilerek işlem yapılırsa istenilen değerin geri döndürülmesi mümkündür. groups() Metodu : >>> import re >>> stringmetin = "Arslan Acar Turk" >>> tara = re.search("(arslan) (Acar) (Turk)",stringMetin) >>> print tara.groups() ('Arslan', 'Acar', 'Turk') #groups() metodunda ise oluşturulan grup halindeki öğeleri demet halinde döndürür. 30

Özel Diziler : \s : #Boşluk karakterini yakalamak için kullanılır. ornek_ozel_dizi_s.py import re liste = ["A 1","A 2","A 3","A4","A5","A 13","A17"] for i in liste: if re.search("[a-za-z]\s",i): print i #Büyük harf veya küçük harf ile başlayıp boşluk ile devam eden öğeleri döndürür. >>> A 1 A 2 A 3 A 13 \d : #0 ile 9 arasındaki karakterleri yakalamak için kullanılır. ornek_ozel_dizi_d.py import re liste = ["1 A","2 A","3 A","4A","5A","13 A","17A"] for i in liste: if re.search("\d\s",i): print i #0 ile 9 arası karakterler ile başlayıp sonrasında boşluk olan öğeleri döndürür. >>> 1 A 2 A 3 A 13 A 31

ornek_ozel_dizi_d2.py import re liste = ["1 A","2 A","3 A","4A","5A","13 A","17A"] for i in liste: if re.search("^\d\s",i): print i #0 ile 9 arası bir karakter ve bir boşluk ile başlayan öğeleri döndürür. >>> 1 A 2 A 3 A \w : #0-9, a-z, A-z arasındaki karakterleri ve _(alt çizgi) karakterini yakalamak için kullanılır. ornek_ozel_dizi_w.py import re liste = ["A 1","A 2","a 3","A4","A5","A 13","A17","Aa 17","_ 17","1 A","2 A","13 A","17A"] for i in liste: if re.search("\w\s",i): print i #[0-9a-zA-z_] arası karakterler ile başlayıp sonrasında boşluk olan öğeleri döndürür. >>> A 1 A 2 a 3 A 13 Aa 17 _ 17 1 A 2 A 13 A 32

ornek_ozel_dizi_w2.py import re liste = ["A 1","A 2","a 3","A4","A5","A 13","A17","Aa 17","_ 17","1 A","2 A","13 A","17A"] for i in liste: if re.search("^\w\s",i): print i #[0-9a-zA-z_] arası bir karakter ve bir boşluk ile başlayan öğeleri döndürür. >>> A 1 A 2 a 3 A 13 _ 17 1 A 2 A \S : #Küçük s nin değili. ornek_ozel_dizi_s.py import re liste = ["A 1","A 2","A 3","A4","A5","A 13","A17"] for i in liste: if re.search("[a-za-z]\s",i): print i #Büyük harf veya küçük harf ile başlayıp boşluk ile devam etmeyen öğeleri döndürür. >>> A4 A5 A17 33

\D : #Küçük d nin değili. ornek_ozel_dizi_d.py import re liste = ["1 A","2 A","3 A","4A","A","13 A","A17A"] for i in liste: if re.search("^\d",i): print i #[0-9] arası bir karakter ile başlamayan öğeleri döndürür. >>> A A17A \W : #Küçük w nin değili. ornek_ozel_dizi_d.py import re liste = ["A 1","a 3","*A4","A5","A 13","?A17","Aa 17","_ 17","1 A","2 A","13 A","17A"] for i in liste: if re.search("^\w",i): print i #[0-9a-zA-z_] arası bir karakter ile başlamayan öğeleri döndürür. >>> *A4?A17 34

Düzenli İfadelerin Derlenmesi : compile() Metodu : #Düzenli ifadelerin hız performansını arttırmak için kullanılır. ornek_derleme_compile.py import re liste = ["A 1","a 3","*A4","A5","A 13","?A17","Aa 17","_ 17","1 A","2 A","13 A","17A"] derlenen = re.compile("^\d") for i in liste: tara = derlenen.search(i) if tara: print i #[0-9] arası karakter ile başlayan öğeleri döndürür. Önce arama kriteri derlenir ve derlenen yapı içerisinden tekrar arama yapılır. Program büyüdükçe performans artışı daha net görülür. >>> 1 A 2 A 13 A 17A re.ignorecase veya re.i Özelliği : #Büyük harf küçük harf duyarlılığı özelliği olmadan arama yapılmasını sağlar. #re.ignorecase yerine re.i da kullanılabilir. ornek_derleme_compile_ignorecase.py import re metin = "Kizilcahamam kizilcahamam Ankara KiZilcahamam KIZILCAHAMAM" derlenen = re.compile("kizilcahamam",re.ignorecase) print derlenen.findall(metin) >>> ['Kizilcahamam', 'kizilcahamam', 'KiZilcahamam', 'KIZILCAHAMAM'] 35

re.dotall veya re.s Özelliği : #. (Nokta) metakarakteri normalde her karakter yerine kullanılır ama \n (Alt satıra geç) gibi kaçış karakterlerinin yerine kullanılamaz. Arama yapılırken de bu karakterleri dikkate almaz. Re.DOTALL özelliği ile bu durum ortadan kaldırılabilir. #re.dotall yerine re.s da kullanılabilir. >>> metin = "Ankara\nKizilcahamam" >>> print re.search("ankara.*",metin).group() Ankara >>> metin = "Ankara\nKizilcahamam" >>> derlenen = re.compile("ankara.*",re.dotall) >>> tara = derlenen.search(metin) >>> if tara: print tara.group() Ankara Kizilcahamam re.unicode veya re.u Özelliği : #Program içerisinde Türkçe karakter kullanılabilmesini sağlar. #re.unicode yerine re.u da kullanılabilir. ornek_derleme_compile_unicode.py #_*_ coding:cp1254 _*_ import re import locale locale.setlocale(locale.lc_all,"") liste = ["Çankaya","Kızılcahamam","Ankara"] derlenen = re.compile("\w*",re.unicode) for i in liste: nesne=derlenen.search(i) if nesne: print nesne.group() #Windows üzerinde re.unicode kullanımı. >>> Çankaya Kızılcahamam Ankara 36

Düzenli İfadelerde Metin-Karakter Değiştirme Metodları : sub() Metodu : #Düzenli ifadelerde compile() metodu ile kullanılarak aranılan metni bulur ve istenile metin ile değiştirir. >>> import re >>> metin = "Windows isletim sistemi uzerinde windows programlari" >>> derlenen = re.compile("windows",re.i) >>> metin = derlenen.sub("linux",metin) >>> metin 'Linux isletim sistemi uzerinde Linux programlari' subn() Metodu : #sub() metodu ille aynı işi yapar fakat yapılan değişiklik sayısını da tutar. >>> import re >>> metin = "Windows isletim sistemi uzerinde windows programlari" >>> derlenen = re.compile("windows",re.i) >>> metin = derlenen.subn("linux",metin) >>> metin ('Linux isletim sistemi uzerinde Linux programlari', 2) >>> print "Yapilan degisiklik sayisi = %s" %metin[1] Yapilan degisiklik sayisi = 2 37

Nesne Tabanlı Programlama : Sınıflar : Sınıf Oluşturmak ve Çağırmak : ornek_sinif.py class Ornek_sinif: metin = "Ornek_sinif.py sinifi icerisindeki metin icerigi." #Basitçe bir sınıf oluşturma işlemi yapıldı. ornek_sinif_calistir.py #_*_ coding:cp1254 _*_ from Ornek_sinif import * calistirilacaksinif = Ornek_sinif() print calistirilacaksinif.metin #Oluşturulan sınıfın program tarafından çağırılması ve kullanılması. >>> Ornek_sinif.py sinifi icerisindeki metin icerigi. init : #Sınıflarda ilk değer atama (Varsayılan değer) işlemini ve sınıf ilk çağırıldığında yapacağı işlemi belirler. ornek_sinif_init.py #-*- coding:utf8 -*- class Ornek_sinif_init: def init (self): metin = "Ornek_sinif_init.py sinifi icerisindeki metin icerigi." print metin varsayilandeger = Ornek_sinif_init() ornek_sinif_calistir_init.py #_*_ coding:cp1254 _*_ from Ornek_sinif_init import * >>> Ornek_sinif_init.py sinifi icerisindeki metin icerigi. 38

self Özelliği : #Sınıflarda belirlediğimiz değişkenlerin fonksiyonlar tarafındanda kullanılabilmesi için gerekli bir özelliktir. Değişkenlerin global olmasını sağlar. ornek_sinif_self.py #-*- coding:utf8 -*- class Ornek_sinif_self: def init (self): self.metin = "Ornek_sinif_self.py sinifi icerisindeki metin icerigi." self.metin2 = "2. metin icerigi" def yazdir(self): print self.metin print self.metin2 ekranayaz = Ornek_sinif_self() ornek_sinif_calistir_self.py #_*_ coding:cp1254 _*_ from Ornek_sinif_self import * ekranayaz.yazdir() print ekranayaz.metin print ekranayaz.metin2 >>> Ornek_sinif_self.py sinifi icerisindeki metin icerigi. 2. metin icerigi Ornek_sinif_self.py sinifi icerisindeki metin icerigi. 2. metin icerigi 39

Sınıfların Özelliklerinin Miras Alma İle Başka Sınıflara Aktarılması : #Yeni oluşturulan sınıflara eski sınıfların özelliklerini miras yolu ile alabiliriz. Böylece aynı tanımlamaları tekrar yazmak zorunda kalmayız. ornek_sinif_kaynak.py #-*- coding:utf8 -*- class Ornek_sinif_kaynak: def init (self): self.metin = "Ornek_sinif_self.py sinifi icerisindeki metin icerigi." self.metin2 = "2. metin icerigi" def yazdir(self): print self.metin print self.metin2 ekranayaz = Ornek_sinif_kaynak() ornek_sinif_miras.py #-*- coding:utf8 -*- from Ornek_sinif_kaynak import * class Ornek_sinif_miras(Ornek_sinif_kaynak): pass miras = Ornek_sinif_miras() ornek_sinif_calistir_miras.py #_*_ coding:cp1254 _*_ from Ornek_sinif_miras import * print miras.yazdir() print miras.metin print miras.metin2 >>> Ornek_sinif_self.py sinifi icerisindeki metin icerigi. 2. metin icerigi None Ornek_sinif_self.py sinifi icerisindeki metin icerigi. 2. metin icerigi 40

Yeni Sınıf Yapısı : #Eski sınıf yapısında herhangi bir sınıftan miras almadan da sınıf tanımlaması yapılabilirken yeni sınıf yapısında kesinlikle bir sınıftan miras almak zorunludur. Eğer bir sınıftan miras almamıza gerek yoksa bile object sınıfından miras almamız gerekir. ornek_sinif_yeni.py class Ornek_sinif(object): pass yenisinif = Ornek_sinif() >>> yenisinif.deger1 = "Arslan" >>> yenisinif.deger2 = "ACAR" #Oluşturulan sınıfa dışarıdan değişken ve değer atama işlemi >>> yenisinif. dict {'deger1': 'Arslan', 'deger2': 'ACAR'} #Atadığımız değerleri kullanabilmek için dict komutunu kullanabiliriz. Biçim Düzenleyiciler : %s : #String (Karakterler) ifadeleri temsil eder. >>> print "Kullanıcı Adı :%s" %"Arslan" Kullanıcı Adı :Arslan >>> print "Kullanıcı Adı :%s Mail :%s" %("Arslan","arslanacar@arslanacar.com") Kullanıcı Adı :Arslan Mail :arslanacar@arslanacar.com >>> print "%(Ad)s %(Soyad)s" %{"Ad": "Arslan", "Soyad": "Acar"} Arslan Acar #Sözlüleri düzenli yazmak için kullanılan şekil. >>> print "Boşluk Soluna koyarak sağa yaslamak :%13s" %"Acar" Boşluk Soluna koyarak sağa yaslamak : Acar #Karakterin başına istenilen sayıda boşluk eklenilerek sağa yaslanılabilir. %d : #Integer (Tamsayılar) ifadeleri temsil eder. >>> print "Uğurlu Sayım : %d" %13 Uğurlu Sayım : 13 >>> print "%d + %d = %d" %(10,3,10+3) 10 + 3 = 13 >>> print "Tam Sayının Soluna Sıfır Konulması :%.4d" %13 Tam Sayının Soluna Sıfır Konulması :0013 #Sayının başına istenilen sayıda 0 eklenilerek sağa yaslanılabilir. >>> print "%13.5d" %13 00013 #Sayının başına istenilen sayıda 0 ve boşluk aynı anda eklenilerek sağa yaslanılabilir. 41

%i : #Integer (Tamsayılar) ifadeleri temsil eder. >>> print "Uğurlu Sayım : %i" %13 Uğurlu Sayım : 13 >>> print "%i + %i = %i" %(10,3,10+3) 10 + 3 = 13 %o : #Octal (Sekizlik) sayıları temsil eder. >>> print "%d sayısının octal karşılığı = %o" %(13,13) 13 sayısının octal karşılığı = 15 %x : #Hexadecimal (Onaltılık) sayıları temsil eder. #Küçük x kullanılırsa hex sayıdaki harfleri küçük harf olarak gösterir. print "%d sayısının hexadecimal karşılığı = %x" %(13,13) 13 sayısının hexadecimal karşılığı = d %X : #Hexadecimal (Onaltılık) sayıları temsil eder. #Büyük X kullanılırsa hex sayıdaki harfleri büyük harf olarak gösterir. >>> print "%d sayısının hexadecimal karşılığı = %X" %(13,13) 13 sayısının hexadecimal karşılığı = D %f : #Float (Kayan Noktalı) sayıları temsil eder. >>> print "Noktalı Sayı :%f" %13.13 Noktalı Sayı :13.130000 >>> print "Noktalı Sayı :%.2f" %13.13 Noktalı Sayı :13.13 #Noktadan sonra kaç karakter gösterileceğini belirleyebiliriz. >>> print "%13.5f" %13.1300000000 13.13000 #Noktadan sonra kaç karakter gösterileceğini belirleyip aynı anda sayının soluna boşluk ekleyerek sağa yaslayabiliriz. %c : #Tek bir karakteri temsil eder >>> print "Karakter :%c" %"a" Karakter :a #Ayrıca verilen sayının Ascii tablodaki karakter karşılığını gösterir. >>> print chr(65) A 42

math Modülü : #math modülünü kullanabilmek için programa import etmek gerekir. import math >>> import math >>> dir(math) [' doc ', ' name ', ' package ', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] pow (Üs Alma) : #Verilen iki sayıdan ilk sayının ikinci sayı kuvvetini bulur. >>> math.pow(3,2) 9.0 pi (Pi Sayısı) : #Pi sayısının değerini verir. >>> math.pi 3.141592653589793 sqrt (Karekök) : #Verilen sayının karekökünü bulur. >>> math.sqrt(16) 4.0 e (Euler Sabiti) : #Euler sabitini verir. >>> math.e 2.718281828459045 exp() (Euler Sabitinin Kuvveti) : #Euler sabitinin belirtilen sayı kuvvetini verir. >>> math.exp(2) 7.38905609893065 #Euler sabitinin karesini verir. >>> math.exp(3) 20.085536923187668 #Euler sabitinin küpünü verir. log (Logaritma) : #Belirtilen ilk sayının ikinci sayı tabanına göre logaritmasını verir. >>> math.log(2,2) 1.0 >>> math.log(4,2) 2.0 43

log10 (10 Tabanına Göre Logaritma) : #Belirtilen sayının 10 tabanına göre logaritmasını verir. >>> math.log(20,10) 1.301029995663981 >>> math.log10(20) 1.3010299956639813 degrees (Radyandan Dereceye Çeviri) : #Girilen değeri radyandan dereceye çevirir. >>> math.degrees(60) 3437.746770784939 radians (Dereceden Radyana Çeviri) : #Girilen değeri dereceden radyana çevirir. >>> math.radians(3437.746770784939) 60.0 cos (Kosinüs) : #Girilen radyan cinsi değerin kosinüsünü verir. >>> math.cos(60) -0.9524129804151563 >>> math.cos(math.radians(60)) 0.5000000000000001 #Derece türünden işlem yapmak için istenilen dereceyi radyana çevirip işlem yapmalıyız. sin (Sinüs) : #Girilen radyan cinsi değerin sinüsünü verir. >>> math.sin(90) 0.8939966636005579 >>> math.sin(math.radians(90)) 1.0 #Derece türünden işlem yapmak için istenilen dereceyi radyana çevirip işlem yapmalıyız. tan (Tanjant) : #Girilen radyan cinsi değerin tanjantını verir. >>> math.tan(45) 1.6197751905438615 >>> math.tan(math.radians(45)) 0.9999999999999999 #Derece türünden işlem yapmak için istenilen dereceyi radyana çevirip işlem yapmalıyız. 44

Temel Grafik Arayüz İşlemleri : Tkinter Modülü : Pencere Oluşturmak : >>> from Tkinter import * >>> Tk() # from Tkinter import * ile Tkinter modülünü programa eklediğimizde Tk() komutu yeni pencere için yeterli olur. >>> import Tkinter >>> Tkinter.Tk() # import Tkinter ile Tkinter modülünü programa eklediğimizde ise Tkinter. Tk() komutu ile yeni pencere çağırabiliriz. 45

ornek_basit_pencere.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() mainloop() # mainloop() ile önceden özellikleri belirtilen pencereyi oluştururuz. Bu pençe aksi belirtilmedikçe veya kullanıcı kapatmadıkça ekranda açık olarak bekler. # pencere=tk() kodu ile Tk() sınıfını pencere değişkenine atadık yani örnekleme yaptık. Pencere Üzerine Başlık Eklenmesi (title) : ornek_pencere_baslik.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() baslik=pencere.title("pencere Basligi") etiket = Label(text="\n\n\nwww.arslanacar.com\n\n\n") etiket.pack() mainloop() # pencere.title("pencere Basligi") komutu ile penceremize başlık ekleyebiliriz. 46

Pencere Üzerine Yazı Eklenmesi (Label) : ornek_pencere_label.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() etiket = Label(text="\n\n\nwww.arslanacar.com\n\n\n") etiket.pack() mainloop() # etiket = Label(text="\n\n\nwww.arslanacar.com\n\n\n") ile etiket bilgileri yani pencere üzerinde gösterilecek metin bilgileri girişi yapılır. # etiket.pack() ile yukarıda tanımladığımız etiket bilgilerini görünür hale getiririz. Pencere Üzerindeki Yazının Rengini Belirlemek (fg Özelliği) : ornek_pencere_fg.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() baslik=pencere.title("pencere Basligi") etiket = Label(text="\n\n\nwww.arslanacar.com\n\n\n",fg="blue") etiket.pack() mainloop() 47

Pencere Üzerindeki Yazının Arka Plan Rengini Belirlemek (bg Özelliği) : ornek_pencere_bg.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() baslik=pencere.title("pencere Basligi") etiket = Label(text="\n\n\t\twww.arslanacar.com\t\t\n\n",fg="blue",bg="yellow") etiket.pack() mainloop() Pencere Üzerindeki Yazının Yazı Tipini Belirlemek (font Özelliği) : ornek_pencere_font.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() etiket = Label(text="\n\n\t\twww.arslanacar.com\t\t\n\n",font="Times 18 bold") etiket.pack() mainloop() # font özelliği ile yazının tip, boy ve biçim özellikleri belirlenebilir. # Kullanılabilen Biçim Özellikleri: italic :Yatık underline : Altı Çizili bold : Kalın overstrike : Kelimenin Üstü Çizili 48

Pencerede Yazının Üzerinde Görüntülenecek İmleci Belirlemek (cursor Özelliği) : ornek_pencere_cursor.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() etiket = Label(text="\n\n\t\twww.arslanacar.com\t\t\n\n",cursor="man") etiket.pack() mainloop() # cursor özelliği ile pencerede yazının üzerine gelindiğinde görülecek mause imlecinin tipini belirleyebiliriz. # Kullanılabilen İmleç Tipleri: "arrow" "circle" "clock" "cross" "dotbox" "exchange" "fleur" "heart" "heart" "man" "mouse" "pirate" "plus" "shuttle" "sizing" "spider" "spraycan" "star" "target" "tcross" "trek" "watch" 49

Pencere Boyutunu Belirlemek : ornek_pencere_boyutu.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("200x200+250+300") etiket = Label(text="\n\n\t\twww.arslanacar.com\t\t\n\n") etiket.pack() mainloop() # 200x200 pencere boyutunu ifade eder. # 250+300 pencere konumunu ifade eder. Soldan sağa 250, yukarıdan aşağıya 300. konum. Pencere Boyutunun Kullanıcı Tarafından Değiştirilmesinin Engellenmesi : ornek_pencere_boyutu_sabit.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("200x200+250+300") pencere.resizable(width=false, height=false) etiket = Label(text="\n\n\t\twww.arslanacar.com\t\t\n\n") etiket.pack() mainloop() # pencere.resizable(width=false, height=false) ile kullanıcının pencere boyutunda değişiklik yapması engellenmiş olur. 50

Pencere Özelliklerinin Düzenli Olarak Belirlenmesi : ornek_pencere_genel.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("200x200+250+300") pencere.resizable(width=false, height=false) etiket = Label(text="") etiket["text"] = "www.arslanacar.com" etiket["fg"] = "blue" etiket["bg"] = "black" etiket["font"] = "Times 18 underline" etiket["cursor"] = "exchange" etiket.pack() mainloop() # Pencere özelliklerinin bu şekilde kullanımı daha düzenli ve kolay işlem yapmamızı sağlar. 51

Pencere Üzerine Buton Eklenmesi (Button) : ornek_pencere_button.py #_*_ coding:cp1254 _*_ from Tkinter import * def ekranayaz(): yenipencere = Tk() pencere = Tk() buton1 = Button(text="Yeni Pencere",command=ekranaYaz) buton1.pack() mainloop() # Button aracı ile pencere üzerine bir button ekleyip, o butona tıklandığında da çalışan bir komut eklenilebilir. 52

ornek_pencere_button2.py #_*_ coding:cp1254 _*_ from Tkinter import * import tkmessagebox def ekranayaz1(): tkmessagebox.showinfo( "Mesaj Baslik", "Buton1 Islendi") def ekranayaz2(): tkmessagebox.showinfo( "Mesaj Baslik", "Buton2 Islendi") pencere = Tk() buton1 = Button(text="Buton1",command=ekranaYaz1) buton1.pack(side=left) buton2 = Button(text="Buton2",command=ekranaYaz2) buton2.pack(side=right) mainloop() # Button araçlarının pencere üzerinde yerleşimlerini belirledik. ornek_pencere_button3.py #_*_ coding:cp1254 _*_ from Tkinter import * import tkmessagebox def ekranayaz(): tkmessagebox.showinfo( "Mesaj Baslik", "Buton1 Islendi") pencere = Tk() buton = Button(text="Buton",command=ekranaYaz,width=10,height=2) buton.pack(side=left) mainloop() # Butonun genişlik ve uzunluğunu belirledik. 53

Pencere Üzerine Metin Girişi Eklenmesi (Entry) : ornek_pencere_entry.py #_*_ coding:cp1254 _*_ from Tkinter import * def entrysil(): giris.delete(0,end) giris.insert(0,"arslan") pencere = Tk() giris =Entry(width=20) giris.pack() buton1 = Button(text="Buton",command=entrySil) buton1.pack(side=left) mainloop() # giris =Entry() giris.pack() komutları ile pencere üzerinde bir adet Entry aracı oluştururuz. # giris.delete(0,end) komutu oluşturulan Entry içeriğini siler. # giris.insert(0,"arslan") komutu Entry içerisine istenilen değeri yazar. # giris =Entry(width=20) ile istersek Entry aracının genişliğini belirleyebiliriz. # okunandeger = giris.get() ile Entry üzerindeki değeri bir değişkene alabiliriz. 54

Pencere Araçlarının Konumlarının Ayarlanması (Frame) : ornek_pencere_frame.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() etiket=label(text="bilgi Girisi") etiket.pack() frame1 = Frame(padx=20,pady=20) frame1.pack() giris =Entry(width=20) giris.pack() frame2 = Frame(padx=20,pady=20) frame2.pack() buton1 = Button(text="Buton") buton1.pack(side=left) mainloop() # Frame özelliği ile pencere araçlarının aralarındaki mesafeler belirlenebilir. 55

Geometri Yöneticileri : pack() : pack(expand) : ornek_pencere_pack_expand.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("200x200+150+150") etiket=label(text="bilgi Girisi",bg="green") etiket.pack(expand=yes) giris =Entry(bg="green") giris.pack(expand=yes) buton1 = Button(text="Buton",bg="green") buton1.pack(expand=yes) mainloop() # Pencere araçlarının pencere üzerinde daha orantılı bir şekilde dağılmasını sağlar. # Varsayılan değeri NO dur. YES seçeneği expand özelliğini aktif hale getirir. 56

pack(fill) : ornek_pencere_pack_fill.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("200x200+150+150") etiket=label(text="bilgi Girisi",bg="green") etiket.pack(fill=x) giris =Entry(bg="green") giris.pack(fill=y) buton1 = Button(text="Buton",bg="green") buton1.pack(fill=both) mainloop() # Pencere araçlarının pencereyi üzerinde X veya Y veya hem X hemde Y ekseninde doldurmasını sağlar. # Seçenekler: X : X ekseni Y : Y ekseni BOTH:Hem X hemde Y ekseni 57

pack(side) : ornek_pencere_pack_side.py #_*_ coding:cp1254 _*_ from Tkinter import * pencere = Tk() pencere.geometry("250x100+150+150") etiket=label(text="bilgi Girisi",bg="green") etiket.pack(side=left) giris =Entry(bg="green") giris.pack(side=left) buton1 = Button(text="Buton",bg="green") buton1.pack(side=left) mainloop() # Pencere araçlarının pencere üzerinde istediğimiz yöne yaslamaya yarar. # Seçenekler: TOP: Pendere aracını yukarı yaslar. BOTTOM: Pendere aracını alta yaslar. LEFT: Pendere aracını sola yaslar. RIGHT: Pendere aracını sağa yaslar. 58

pack() ile Frame Aracının Beraber Kullanılması : ornek_pencere_pack_frame.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("400x100+150+150") frame1 = Frame(height=1,bd=2,relief=GROOVE) frame1.pack(fill=x,pady=6,padx=6,side=top) frame2 = Frame(height=3,bd=2,relief=GROOVE) frame2.pack(fill=both,pady=6,padx=6,side=bottom) etiket=label(frame1,text="www.arslanacar.com") etiket.pack() buton1 = Button(frame2,text="Buton1") buton1.pack(side=left) buton2 = Button(frame2,text="Buton2") buton2.pack(side=right) mainloop() # Pencere araçlarını istediğimiz Frame üzerinde konumlandırabiliriz. # Frame(height=1,bd=2,relief=GROOVE) özelliklerinden height frame in yüksekliğini, bg kenar kalınlığını ve relief kabartma seçeneklerini belirler. # Kullanılabilen relief Tipleri: SOLID FLAT RIDGE SUNKEN GROOVE RAISED 59

grid() : grid(row) : ornek_pencere_grid_row.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("400x100+150+150") buton1 = Button(text="Buton1") buton1.grid(row=4) buton2 = Button(text="Buton2") buton2.grid(row=3) buton3 = Button(text="Buton3") buton3.grid(row=2) buton4 = Button(text="Buton4") buton4.grid(row=1) mainloop() # row seçeneği pencere aracının pencerenin hangi satırında olacağını belirler. 60

grid(column) : ornek_pencere_grid_column.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("400x100+150+150") buton1 = Button(text="Buton1") buton1.grid(column=1) buton2 = Button(text="Buton2") buton2.grid(column=2) buton3 = Button(text="Buton3") buton3.grid(column=3) buton4 = Button(text="Buton4") buton4.grid(column=4) mainloop() # row seçeneği pencere aracının pencerenin hangi sütununda olacağını belirler. 61

ornek_pencere_grid_row_column.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("400x100+150+150") buton1 = Button(text="Buton1") buton1.grid(row=0,column=0) buton2 = Button(text="Buton2") buton2.grid(row=0,column=1) buton3 = Button(text="Buton3") buton3.grid(row=1,column=0) buton4 = Button(text="Buton4") buton4.grid(row=1,column=1) mainloop() 62

place() : ornek_pencere_place.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("400x100+150+150") buton1 = Button(text="Buton1") buton1.place(relx=0.0,rely=0.0,relheight=0.2,relwidth=0.2) buton2 = Button(text="Buton2") buton2.place(relx=0.3,rely=0.0,relheight=0.2,relwidth=0.2) buton3 = Button(text="Buton3") buton3.place(relx=0.0,rely=0.3,relheight=0.2,relwidth=0.2) buton4 = Button(text="Buton4") buton4.place(relx=0.3,rely=0.3,relheight=0.2,relwidth=0.2) mainloop() # place yöneticisi pencere araçları için en hassas konumlandırmayı sağlar. # relx : X Koordinatındaki yer. # rely : Y Koordinatındaki yer. # relheight : Yükseklik. # relwidth : Genişlik. 63

Pencerede Üzerine Onay Kutusu Eklenmesi (Checkbutton) : ornek_pencere_checkbutton.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() anapencere.geometry("300x100+150+150") onay1 = Checkbutton(text="Windows 8") onay1.place(relx=0.0,rely=0.1) onay2 = Checkbutton(text="Windows 7") onay2.place(relx=0.0,rely=0.3) onay3 = Checkbutton(text="Windows Vista") onay3.place(relx=0.0,rely=0.5) onay4 = Checkbutton(text="Windows XP") onay4.place(relx=0.0,rely=0.7) mainloop() ornek_pencere_checkbutton_deger.py #_*_ coding:cp1254 _*_ from Tkinter import * import tkmessagebox anapencere = Tk() anapencere.geometry("300x150+150+150") def ekranayaz(): if secim1.get()==1: tkmessagebox.showinfo( "Mesaj Baslik", "onay1 Isaretli") if secim2.get()==1: tkmessagebox.showinfo( "Mesaj Baslik", "onay2 Isaretli") if secim3.get()==1: 64

tkmessagebox.showinfo( "Mesaj Baslik", "onay3 Isaretli") if secim4.get()==1: tkmessagebox.showinfo( "Mesaj Baslik", "onay4 Isaretli") secim1=intvar() secim1.set(0) secim2=intvar() secim2.set(0) secim3=intvar() secim3.set(0) secim4=intvar() secim4.set(0) onay1 = Checkbutton(text="Windows 8",variable=secim1) onay1.place(relx=0.0,rely=0.1) onay2 = Checkbutton(text="Windows 7",variable=secim2) onay2.place(relx=0.0,rely=0.3) onay3 = Checkbutton(text="Windows Vista",variable=secim3) onay3.place(relx=0.0,rely=0.5) onay4 = Checkbutton(text="Windows XP",variable=secim4) onay4.place(relx=0.0,rely=0.7) buton1 = Button(text="Secim",command=ekranaYaz) buton1.place(relx=0.7,rely=0.1,relheight=0.2,relwidth=0.2) mainloop() # Checkbutton aracı seçim değeri ile kullanılırsa bir anlam ifade eder. Bu örnekde secim1 isimli bir IntVar() örneği oluşturduk. Eğer Checkbutton aracı seçilmişse bu değer 1 olur. 65

Yeni Pencere Oluşturulması (Toplevel) : ornek_pencere_toplevel.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() def yenipencereekle(): yenipencere=toplevel() buton2=button(yenipencere,text="cikis",command=yenipencere.destroy) buton2.pack() buton1=button(anapencere,text="yeni Pencere Ac",command=yeniPencereEkle) buton1.pack() mainloop() 66

Pencere Üzerine Liste Kutusu Eklenmesi (Listbox) : ornek_pencere_listbox.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() listbox1 =Listbox() listbox1.place(relx=0.0,rely=0.0) def listeekle(): listbox1.insert(end,"www.arslanacar.com") def listeteksil(): listbox1.delete(active) def listehepsinisil(): listbox1.delete(0,end) buton1 = Button(text="Ekle",command=listeEkle) buton1.place(relx=0.0,rely=0.9) buton2 = Button(text="Tek Tek Sil",command=listeTekSil) buton2.place(relx=0.2,rely=0.9) buton3 = Button(text="Hepsini Sil",command=listeHepsiniSil) buton3.place(relx=0.6,rely=0.9) mainloop() 67

Pencere Üzerine Menu Eklenmesi (Menu) : ornek_pencere_menu.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() menu1=menu(anapencere) anapencere.config(menu=menu1) menudosya=menu(menu1,tearoff=0) menu1.add_cascade(label="dosya",menu=menudosya) menudosya.add_command(label="dosya Ekle") menudosya.add_command(label="dosya Sil") menudosya.add_command(label="dosya Degistir") menudosya.add_command(label="dosya Bul") menudosya.add_command(label="cikis",command=quit) mainloop() Pencere Üzerine Çok Satırlı Yazı Eklenmesi (Text) : ornek_pencere_text.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() def secileniyolla(): gelen=metin1.get("sel.first","sel.last") metin2.insert(end,gelen) metin2.insert(end,"\n") def hepsiniyolla(): 68

gelen=metin1.get(1.0,end) metin2.insert(end,gelen) metin2.insert(end,"\n") metin1=text(height=10,width=70,fg="yellow",bg="blue",font="times 14") metin1.insert(end,"www.arslanacar.com") metin1.insert(end,"\n") metin1.insert(end,"arslan ACAR") metin1.pack() metin2=text(height=10,width=70,fg="blue",bg="yellow",font="times 14") metin2.pack() buton1 = Button(text="Secileni Alt Satira Gonder",command=secileniYolla) buton1.pack(side=left) buton2 = Button(text="Hepsini Alt Satira Gonder",command=hepsiniYolla) buton2.pack(side=left) mainloop() # gelen=metin1.get("sel.first","sel.last") komutu metin1 de seçilen kısmı alır ve metin2 ye ekler. # gelen=metin1.get(1.0,end) komutu metin1 in tamamını alır ve metin2 ye ekler. 69

Pencere Üzerine Kaydırma Çubuğu Eklenmesi (Scrollbar) : ornek_pencere_scrollbar.py #_*_ coding:cp1254 _*_ from Tkinter import * anapencere = Tk() asagikaydirma=scrollbar(anapencere) asagikaydirma.pack(side=right,fill=y) sagakaydirma=scrollbar(anapencere,orient=horizontal) sagakaydirma.pack(side=bottom,fill=x) metin1=text(yscrollcommand=asagikaydirma.set,xscrollcommand=sagakaydirma.set, height=10,width=40,font="times 14") metin1.insert(end,"www.arslanacar.com") metin1.insert(end,"\n") metin1.insert(end,"arslan ACAR") metin1.pack() asagikaydirma.config(command=metin1.yview) sagakaydirma.config(command=metin1.xview) mainloop() 70