Untitled
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