Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Python Egitim Notlari – IV

Python Egitim Notlari – IV

Gönderim Ocak 27th, 2013

Egitimin dorduncu adiminda, Python’da cok sik bir sekilde kullanabilecegimiz komutlardan bahsetmeye calisacagim. Tabi bunlarla ilgili Tutorial’lara, kurmus oldugunuz Python paketleri icerisindeki The Python Tutorial.html icerisinden de ulasabilirsiniz.

– Metin disarisinda vermis oldugumuz parametreleri %s ile okuyabiliriz.

a = 1
b = 2
string = “%s , $s” % (a,b)
string = “%s” % a

string = “{sayi1} ve {sayi2}”.format(sayi1=a, sayi2=b)

Dosyalama Islemleri

open metodu dosyayi acmak icin kullanilir.
dosya = open(“dosya_adi”,”w”)
w: yazma modudur.uzerine yaziliyor eski bilgiler siliniyor.
dosya = open(“deneme.txt”,”w”)
dosya.writelines()        #birden fazla satir yazabiliyoruz dosya icerisine
dosya.write(“merhaba dunya”)
dosya.close()
r: okuma modudur.
dosya = open(“deneme.txt”,”r”)
dosya.readline()               #tek satiri okur
dosya.readlines()             #butun satirlarin tamamini okuyor
dosya.close()
dosya = open(“deneme.txt”,”a”)
a: append modudur. Uzerine yazmaya devam edebiliriz.
dosya.write(“deneme 1 2”)
dosya.close()
dosya = open(“deneme.txt”, “r”)
dosya.readlines()        #yazilarin tamamini bir dizi seklinde vermektedir, for ile cok fazla calisilabilir
dosya = open(“deneme.txt”,”r”)
satirlar = dosya.readlines()
dosya.close()

for satir in satirlar:
print satir
dosya.tell()         #dosyanin sonuna kadar okuma yapar. kac karakter varsa soyler.
dosya.seek(12)
dosya.readline()       #kacinci karakteri gormek istiyorsaniz onu yazariz
dosya.seek(0)
dosya.readline()       #tum verileri okur.
wb: metin editoru ile acabiliyoruz
rb: varsayilan bir dosya olarak acar

Istisnalar, Hata Firlatma

C’de yok nesne yonelimmli programlarda vardir. valueerror’lar ile istisnalar donmektedir.
try:
int(“a”)
except:
print “sayi donusturulemedi”

try:
int(“a”)
except ValueError:
print “deneme”
except Exception:
print “a”
finally:
print “x”

Bu sekilde sadece valueerror hatalarini yakalar diger hatalari gostermez. Exception butun hatalari gosterir. Finally blogu ise ne olursa olsun calistirilacak bir ozelliktir.

try:
dosya = open(“deneme2.txt”,”r”)
print dosya.readlines()
except:
print “dosya bulunamadi”
finally:
dosya.close()

try:
dosya = open(“deneme2.txt”,”r”)
print dosya.readlines()
except IOError as e:
print “dosya bulunamadi, %s” % e
finally:
dosya.close()

try:
dosya = open(“deneme2.txt”,”r”)
print dosya.readlines()
a = int(“324fw”)
except IOError as e:
print “dosya bulunamadi, %s” % e
except ValueError as e:
print “sayi donusturulemedi”
finally:
print “dosya kapaniyor”
dosya.close()

try:
dosya = open(“deneme2.txt”,”w”)           #yazma modunu actigimizda hata vermeyecek
dosya.wrte(“a”)
a = int(“324fw”)
except IOError”
print “dosya bulunamadi”
except ValueError:
print “sayi donusturulemedi”
finally:
print “dosya kapaniyor”
dosya.close()

def deneme():
a = “”
raise Exception(“”)            #istedigimiz sey olmayinca kendi istisnamizi yaratabiliriz.
#raise ValueError(“deneme”)

Ekran ciktisi su sekilde olacaktir :
>>> deneme()
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “<stdin>”, line 3, in deneme
ValueError: deneme

Sinif Tanimlamalari

class Sinif:    seklinde sinif tanimlamasi yapilir. Sinifin yapici fonksiyonuna ne istiyorsan onu yaziyoruz.
class Sinif:
def __init___(self):            #sinifin gostericisidir.
self.isim = “isim”
def isim_getir(self):
return self.isim
cagirirken ise; ornek = Sinif() seklinde kullaniriz.
Ornek degeri girildiginde main metodu seklinde karsimiza gelecektir. ornek.isim_getir() seklindede fonksiyonu cagirabiliriz. Gelen deger “isim” olacaktir. dir(ornek)  girildigi zaman yine hangi module de oldugu ve diger tum ozellikleri karsimiza getirecektir. python’da private ve protect nesne degiskenleri tanimlanabiliyor fakat erisimi engellemek gibi birsey yok sadece gormesini engelliyoruz.

class Sinif:
def __init__(self):
self._protected_degisken = “a”
self.__private_degisken = “b”
ornek = Sinif()

dir(ornek) dedigimiz zaman listede bunlar yer alacaktir. Private’lar cift cizgi ile baslar, Protected’lar tek cizgi ile baslar.
ornek.__privete_degisken      dedigimiz zaman kullaniciya kulandirtmayacaktir.
print “deneme” dedigimiz zaman icerisi eger nesne ise str metodunu cagirir.

class Sinif:
def __init__(self):
self.deneme = “deneme”
def __str__(self):
return “sinif : \n degiskenler : %s” % deneme
ornek = Sinif()
print ornek dedigimi zaman
Sinif:
degiskenler : <function deneme at 0x1e6758> gibi bir deger gozukecektir.
__ne__
__gt__  gibi siniflarda ozellikler kullanabiliyoruz.

– Inheritance kullanimi; pythonda coklu inheritance kullanilmaktadir. javada yoktur, c#da vardir.
class Istisna(Exception, Sinif1, Sinif2):
class Istisna(Exception):
def __init__(self,e):
self.degisken = “55”
print e
raise Istisna() seklinde cagiriyoruz. File ve main metodlari seklinde karsimiza listeliyor sinfiin ozelliklerini
try:
raise Istisna(“Deneme”)
except Istisna:
print “a”

for i in range(5):
print i
seklinde yazdirilmalar vardi peki siniflarda bu nasil olacak

for i in nesne.veriler():

class Sinif():
def __init__(self,index):       #yapiciya parametre ekleyebiliyoruz.
self.index = index
def __iter__(self):                  #iterasyon nesnesini cagiriyoruz iter ile.
return self
def next(self):                           #for un icerisinde ne dondurulecegini gosteriyor.
if self.index == 0:
raise StopIteration           #istisna olusturup firlatiyoruz.
self.index = self.index – 1
return self.index**2

ornek = Sinir(20)
for sayi in ornek:
print sayi

class Sinif():
def __init__(self,index):
self.index = index
def __iter__(self):
return self
def next(self):
if self.index == 0:
raise StopIteration
self.index = self.index – 1
return self.index**2

ornek = Sinir(20)
for sayi in ornek:
print sayi

Ekran ciktisi ;
361 324 289 256 225 196 169 144 121 100 81 64 49 36 25 16 9 4 1 0

iter(Sinif(20)) seklindede kulllanilabiliyor ama next genelde for icin kullaniliyor.

Bu ogrendiklerimizle bir rehber uygulamasi yapabiliriz…

Keyifli Calismalar Dilerim…

Etiketler:
Bulundugu Konu Etiketleri Python, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var