import random from random import randint class BasitDil: def __init__(self): self.degiskenler = {} self.kutuphaneler = {'mat': self.matematik_kutuphanesi()} self.komutlar = { 'yaz': self.yaz, 'temizle': self.temizle, 'rastgele': self.rastgele, 'dizi': self.dizi, 'degisken': self.degisken, 'fonksiyon': self.fonksiyon, 'kph.mat': self.mat_kutuphanesi, 'ise': self.ise, 'degilse': self.degilse, 'help': self.help } def matematik_kutuphanesi(self): import math return {func: getattr(math, func) for func in dir(math) if not func.startswith('_')} def yaz(self, arg): try: print(eval(arg, {}, self.degiskenler)) except Exception as hata: print(f"Hata: {hata}") def temizle(self, arg): self.degiskenler.clear() print("Tüm değişkenler temizlendi.") def rastgele(self, arg): if ',' in arg: baslangic, bitis = arg.split(',') print(randint(int(baslangic), int(bitis))) else: if arg in self.degiskenler and isinstance(self.degiskenler[arg], list): print(random.choice(self.degiskenler[arg])) else: print(f"Hata: {arg} adında bir dizi bulunamadı veya dizi değil.") def dizi(self, arg): isim, *degerler = arg.split() self.degiskenler[isim] = degerler def degisken(self, arg): isim, deger = arg.split(' ', 1) try: self.degiskenler[isim] = eval(deger, {}, self.degiskenler) except Exception as hata: print(f"Hata: {hata}") def fonksiyon(self, arg): isim, *kod = arg.split() self.degiskenler[isim] = ' '.join(kod) def mat_kutuphanesi(self, arg): if arg in self.kutuphaneler['mat']: self.degiskenler[arg] = self.kutuphaneler['mat'][arg] else: print(f"Hata: matematik kütüphanesinde {arg} fonksiyonu bulunamadı.") def ise(self, arg): try: kosul, komut = arg.split(' sonra ') if eval(kosul, {}, self.degiskenler): self.komut(komut) except Exception as hata: print(f"Hata: {hata}") def degilse(self, arg): try: self.komut(arg) except Exception as hata: print(f"Hata: {hata}") def komut(self, satir): if '(' in satir and satir.endswith(')'): komut_adi, arg = satir.split('(', 1) arg = arg[:-1] if komut_adi in self.komutlar: self.komutlar[komut_adi](arg) else: print("Bilinmeyen komut!") else: print("Bilinmeyen komut!") def help(self, arg): yardim_metni = """ Komutlar: - yaz(mesaj): Mesajı yazdırır. Örnek: yaz(3 + 4) - temizle(): Tüm değişkenleri temizler. - rastgele(baslangic,bitis): Belirtilen aralıkta rastgele bir sayı yazdırır. Örnek: rastgele(1,10) - rastgele.dizi_ismi: Diziden rastgele bir öğe yazdırır. Örnek: rastgele.liste - dizi isim deger1 deger2 ...: Yeni bir dizi oluşturur. Örnek: dizi liste elma armut - degisken isim deger: Yeni bir değişken tanımlar. Örnek: degisken x 5 - fonksiyon isim kod: Yeni bir fonksiyon tanımlar. Örnek: fonksiyon kare x**2 - kph.mat.fonksiyon_ismi: Matematik kütüphanesinden bir fonksiyonu kullanır. Örnek: kph.mat.sqrt - ise kosul sonra komut: Koşul doğruysa komutu çalıştırır. Örnek: ise x > 5 sonra yaz(x) - degilse komut: Koşul yanlışsa komutu çalıştırır. Örnek: degilse yaz(yanlis) - help(): Bu yardım metnini gösterir. """ print(yardim_metni) def kabuk(): dil = BasitDil() while True: komut = input("AltayLang> ") if komut.lower() == 'cikis': break dil.komut(komut) kabuk()