Arkadaşlar merhaba aranıza yeni katılıyorum Ubuntuya geçtikten sonra Python öğrenmeye başladım ilk uygulama olarak bir günlük tutma programı yazdım kaynak kodları ;
#-*- coding: utf-8 -*-
#!/usr/bin/env python
__author__ = 'elysion'
#Sevgili Günlük#
import time
rply=0
while rply==0:
zaman = time.strftime("%d.%m.%Y") #Günün tarihini al
karsilama = input("""Günlüğüne Hoşgeldin,Günlük Yazmak için "Y" okumak için "O" Çıkmak için 'Ç' yi tuşlayın """)#İşlem bilgisi al
if karsilama=="y" or karsilama=="Y" :
try:
gunlukdosya = open(zaman, "w")#Dosya oluştur,yazılabilir olarak aç
gunluk = str(input("Hadi Bugun neler oldu anlat bana ?"))# Günlüğün içeriğini al
gunlukdosya.write(gunluk)#Günlüğün içeriğini dosyaya yaz.
gunlukdosya.close()#Dosyayı Kapat.
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
rply=0
finally:
gunlukdosya.close()
if karsilama=="o" or karsilama=="O":
trhal=input("Okumak istediğiniz günü lütfen '"+zaman+"' şeklinde yazınız")#Dosya adını al
try:
gunlukoku=open(trhal,"r")#dosyayı sadece okunabilir olarak aç
print(gunlukoku.read())#dosyada gördüklerini yaz
gunlukoku.close()#dosyayı kapat
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
rply=0
if karsilama=="ç" or karsilama=="Ç":
quit()
vedalasma=input("Devam etmek istiyorsanız 'D' çıkmak istiyorsanız 'Ç'yi tuşlayınız.")
if vedalasma=="D" or vedalasma=="d":
rply=0
if vedalasma=="ç" or vedalasma=="Ç":
print(" ", 'Yarın tekrar görüşmek üzere Mutlu Ol !'," ")
quit()
Bunlar birde bu uygulamamı , Sınıf ve Fonksiyon tanımlayarak yapmaya çalıştım fakat hata alıyorum sorunun nerede olduğunu bir türlü çözemedim yardımcı olabilir misiniz ? Kaynak kodları ;
#-*- coding: utf-8 -*-
#!/usr/bin/env python
__author__ = 'elysion'
import time
class sevgiligunluk:
def __init__(self,karsilama,):
karsilama = input('Günlüğüne Hoşgeldin,Günlük Yazmak için "Y" okumak için "O" Çıkmak için "Ç" yi tuşlayın ')
if karsilama == "o" or "o":
gunlugum.gunlukoku()
if karsilama=="y"or"y":
gunlugum.gunlukyaz()
if karsilama=="ç"or"Ç":
gunlugum.cik()
else:
print("Hatalı Giriş Yaptınız Tekrar deneyiniz")
def gunlukyaz(self,zaman,gunlukdosya,gunlukmetni):
try:
zaman = time.strftime("%d.%m.%Y")
gunlukdosya = open(zaman, "w")
gunlukmetni = str(input("Hadi Bugun neler oldu anlat bana ?"))
gunlukdosya.write(gunluk)
gunlukdosya.close()
print("Günlük Başarıyla yazıldı.")
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
finally:
gunlukdosya.close()
def gunlukoku(self,trhal,gunlukokuma):
try:
trhal=input("Okumak istediğiniz günü lütfen '"+zaman+"' şeklinde yazınız")
gunlukokuma=open(trhal,"r")
print(gunlukokuma.read())
gunlukokuma.close()
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
def cik(self):
print(" ", 'Yarın tekrar görüşmek üzere Mutlu Ol !'," ")
quit()
gunlugum=sevgiligunluk()
gunlugum()
Değişkenleri tanımlarken değişkeni metoda parametre olarak eklemişsiniz, bunu sadece metoda değer gönderirken yapmalısınız.
Misal;
def gunlukyaz(self,zaman,gunlukdosya,gunlukmetni):
metod bu şekilde tanımlanmış ama
gunlugum.gunlukyaz()
bu şekilde çağrılmış.
Normalde şöyle olmalı;
self.gunlukyaz(ZamanDegeri,gunlukdosyaDegeri,gunlukmetinDegeri)
Ayrıca sınıf içindeki metodları çağırırken
self.metodAdi()
veya parametreli hali;
self.metodAdi(Deger1,Deger2)
şeklinde çağırmalısınız.
İsterseniz şu bağlantıyı bir okuyun. __init__ ne işe yarar, metodlar nasıl çağrılır ve nasıl değer gönderilir, sınıf içindeki global değişkenler nasıl tanımlanır(Örn:self.degisken="degisken degeri").
http://www.istihza.com/py2/nesne.html
Okuyup düzelteceğim inşallah en kısa sürede ilgi için teşekkürler hocam.
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 14 Mart 2014 - 23:45:39
Hocam şu hale getirdim ;
#-*- coding: utf-8 -*-
#!/usr/bin/env python
__author__ = 'elysion'
import time
class sevgiligunluk:
def __init__(self):
self.karsilama = input('Günlüğüne Hoşgeldin,Günlük Yazmak için "Y" okumak için "O" Çıkmak için "Ç" yi tuşlayın ')
if self.karsilama == "o" or "o":
self.gunlukoku()
if self.karsilama=="y"or"y":
self.gunlukyaz()
if self.karsilama=="ç"or"Ç":
self.cik()
else:
print("Hatalı Giriş Yaptınız Tekrar deneyiniz")
def gunlukyaz(self):
try:
self.zaman = time.strftime("%d.%m.%Y")
self.gunlukdosya = open(self.zaman, "w")
self.gunlukmetni = str(input("Hadi Bugun neler oldu anlat bana ?"))
self.gunlukdosya.write(gunluk)
self.gunlukdosya.close()
print("Günlük Başarıyla yazıldı.")
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
finally:
self.gunlukdosya.close()
def gunlukoku(self):
try:
trhal=input("Okumak istediğiniz günü lütfen '"+zaman+"' şeklinde yazınız")
self.gunlukokuma=open(self.trhal,"r")
print(self.gunlukokuma.read())
self.gunlukokuma.close()
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !")
def cik(self):
print(" ", 'Yarın tekrar görüşmek üzere Mutlu Ol !'," ")
quit()
sevgiligunluk()
Fakat örneğin "y"'yi tuşladığımda ve ya "Ç"yi tekrar gunluk ya gidiyor ve şöyle bir hata alıyorum ;
Alıntı Yapraceback (most recent call last):
File "/home/elysion/Desktop/PythonApp/oopgunluk.py", line 39, in <module>
sevgiligunluk()
File "/home/elysion/Desktop/PythonApp/oopgunluk.py", line 9, in __init__
self.gunlukoku()
File "/home/elysion/Desktop/PythonApp/oopgunluk.py", line 30, in gunlukoku
trhal=input("Okumak istediğiniz günü lütfen '"+zaman+"' şeklinde yazınız")
NameError: global name 'zaman' is not defined
Çalışır hali alttaki gibi olacak. Kodları karşılaştırırsanız hatalarınızı göreceksiniz.
Eğer bir değişkeni sadece tanımladığınız o metot içinde kullanacaksanız self kullanmanıza gerek yok, ancak o değişkeni birden fazla metot içinde kullanacaksanız self.degisken seklinde tanımlayın. Bu durumda bu değişkene o sınıftaki tüm metotlar ulaşıp değerini değiştirilebilir.
Kolay gelsin. :)
#-*- coding: utf-8 -*-
#!/usr/bin/env python
__author__ = 'elysion'
import time
class sevgiligunluk:
def __init__(self):
karsilama = raw_input('Günlüğüne Hoşgeldin,Günlük Yazmak için "Y" okumak için "O" Çıkmak için "Ç" yi tuşlayın ')
if karsilama == "o" or karsilama == "O":
self.gunlukoku()
elif karsilama=="y" or karsilama=="Y":
self.gunlukyaz()
elif karsilama=="ç" or karsilama=="Ç":
self.cik()
else:
print("Hatalı Giriş Yaptınız Tekrar deneyiniz")
sevgiligunluk()
def gunlukyaz(self):
try:
zaman = time.strftime("%d.%m.%Y")
gunlukdosya = open(zaman, "w")
gunlukmetni = str(raw_input("Hadi Bugun neler oldu anlat bana ?\n"))
gunlukdosya.write(gunlukmetni)
gunlukdosya.close()
print("Günlük Başarıyla yazıldı.")
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !\n")
sevgiligunluk()
def gunlukoku(self):
try:
zaman = time.strftime("%d.%m.%Y")
trhal=raw_input("Okumak istediğiniz günü lütfen '"+zaman+"' şeklinde yazınız: ")
gunlukokuma=open(trhal,"r")
print(gunlukokuma.read())
gunlukokuma.close()
except IOError:
print("Eyvah!!Lütfen Herşeyi Kontrol Edip Tekrar Deneyiniz !\n")
sevgiligunluk()
def cik(self):
print("\tYarın tekrar görüşmek üzere Mutlu Ol !")
quit()
sevgiligunluk()
Hemen incelikyorum elinize sağlık teşekkür ederim hocam.
Alıntı yapılan: Elysionhocam
Estağfurullah :)
Ama verdiğim kaynağı tavsiye ederim, bir çok farklı başlık da mevcut.
Kolay gelsin. :)