İlk Projemiz: Matematik Problemi Çözelim

Python ile adam akıllı ilk projeye yavaştan başlıyorum. Bu projede yapacağımız şey tam olarak kullanıcıdan işçi ya da havuz problemi alıp önce yazılanın işçi mi havuz mu olduğunu belirlemek, daha sonra ise o problemdeki verileri ayrıştırarak sonuca ulaşmak. Pek de kolay olmayacak ya da hiç tamamlanamayacak bir proje üzerinde çalışıyor olabilirim. Neyse, lafı fazla uzatmadan başlayalım.

İlk günkü çalışmadan istediğim sonucu aldığımı söylersem sizi kandırmış olurum. Henüz çözemediğim hata mesajlarıyla hala uğraşıyorum.

#-*-coding:cp1252-*-
'''
Created on 16 Eyl 2011

@author: guray
'''
import re, math
from Tkinter import *

#if __name__ == '__main__':
#    pass
def sayihatamesaji():
    print "Sorduğunuz soruyu anlamadım, lütfen farklı bir şekilde yazın."

def verial():
    veri="3 işçinin, 5 günde yaptığı evi 9 işçi kaç günde yapar?"
    return veri
def is_virgul(virgullu):
    aranan=re.compile(".*,")
    sonuc aranan.split(virgullu)
    return sonuc

def is_birim(birimli):
    if re.search("['']", virgullu):
        return 1
    else:
        return 0

class isci(object):
    def __init__(self,isciler):
        print "merhaba dünya!"
        self.sayisayisi=re.findall("[0-9]+ ", isciler)
        if len(self.sayisayisi)==2:
            self.cift(self.sayisayisi)
        if len(self.sayisayisi)==3:
            self.triple(self.sayisayisi)
        else:
            sayihatamesaji()
    def cift(self,gelen):
        if is_virgul(gelen)==1:
            self.virguldenayir(gelen)
        elif is_birim(gelen)==1:
            self.birimdenayir(gelen)
        else:
            self.noktadanayir(gelen)

    def triple(self,gelen):
        if is_virgul(gelen)==1:
            self.virguldenayir(gelen)
        elif is_birim(gelen)==1:
            self.birimdenayir(gelen)
        else:
            self.noktadanayir(gelen)

Az önceki nesnemizi örnekleyelim:

isciler=verial()
nesne=isci(isciler)

İlk gün bunları denedim ancak ilk kısımdan sonuç alamadım. Sanırım sabah bütün boşlukları split() ile ayırıp sayıları alarak sayıların etrafındaki 2 şer öğede kontrol yaparım. İlk olarak basit bir sistem kemiği tasarlayıp gittikçe geliştirmek daha mantıklı geldi. Onun için de “5 işçi 10 işi 8 günde yaparsa 8 işçi 90 işi kaç günde yapar?” tipindeki soruları çözmeye çalışarak başlamak istiyorum.

 
comments powered by Disqus