Untitled

 avatar
unknown
plain_text
a month ago
2.0 kB
3
Indexable
def metin_islem_elemanlarini_ayir(metin):
    elemanlar = []
    sayi = ''

    for ch in metin:
        if ch in "0123456789":
            sayi += ch
        else:
            if sayi:
                elemanlar.append(sayi)
                sayi = ''
            elemanlar.append(ch)
    if sayi:
        elemanlar.append(sayi)

    return elemanlar

def carpma_bolme_yap(elemanlar):
    islemler = ["*","/"]
    i = 0
    while i < len(elemanlar):
        if elemanlar[i] in islemler:
            sol = int(elemanlar[i - 1])
            sag = int(elemanlar[i + 1])
            if elemanlar[i] == "*":
                result = sol*sag
            else:
                result = int(sol/sag)
            elemanlar[i - 1] = str(result)
            del elemanlar[i:i + 2]
            i = 0
        else:
            i += 1
    return elemanlar

def sayi_bolu_sifir_kontrol(elemanlar):
    for i in range(len(elemanlar)-2):
        if elemanlar[i] == "/" and elemanlar[i+1] == "0":
            return True
    return False

def hesapla(metin_islem):

    if metin_islem == "":
        return ""

    if len(metin_islem) == 1:
        return metin_islem

    metin_islem = metin_islem.replace(" ", "").replace("\n","")

    elemanlar = metin_islem_elemanlarini_ayir(metin_islem)

    if sayi_bolu_sifir_kontrol(elemanlar):
        return "Tanımsız"

    elemanlar = carpma_bolme_yap(elemanlar)
    #elemanlar = bolme_yap(elemanlar)
    i = 1

    sonuc = int(elemanlar[0])
    while i < len(elemanlar):
        if elemanlar[i] == "+":
            sonuc += int(elemanlar[i + 1])
        elif elemanlar[i] == "-":
            sonuc -= int(elemanlar[i + 1])
        i += 2
    return sonuc

def dosya_oku(dosya_adi):
    file = open(dosya_adi,"r")
    return file.readlines()

satirlar = dosya_oku("aritmetik_islemler.txt")
sonuc_dosyasi = open("sonuc.txt","w",encoding="utf8")

for satir in satirlar:
    sonuc = str(hesapla(satir))
    sonuc_dosyasi.write(sonuc+"\n")
Leave a Comment