Bir hesap makinesi yazdım. Olağanın dışında olarak bir üslü sayıya çevirme butonu ekledim.
Designer’dan arayüzü tasarladım.
Eklediğim butonlar vs. işlevlerini de tamamladım.
Sadece bu kaldı.
lineEdit bildiğiniz gibi str değerler alabiliyor.
Yanılmıyorsam bununla ilgili bir hata :
sanırım
bu satırı bu şekilde yazdığım için python a = eval(exponential_expression(x = self.lineEdit.text()))
"
while (y := math.log(x, count)) != int(y):
TypeError: must be real number, not str
"
böyle bir hata veriyor.
buradaki toplama işaretini mesela basit bir şekilde lineEdit’e yazdırıyordum.
Daha sonra “=” butonu ile eval yardımı kullanarak hesaplatıp lineEdit’e bastırabiliyordum.
Fakat bu sefer bu kadar basit olmayacak anlaşılan.
Orada bir yanlışlık yapmışsınız zaten. y = self.y gibi bir şey yazmışsınız. return edildikten sonra fonksiyon içine ne yazarsanız yazın çalışmaz zaten.
a = exponential_expression(x=self.lineEdit.text())
self.lineEdit.setText(a)
yazınca çalışıyor mu?
Yani 9 a bastığınız zaman hangi değişkenden bu değeri alacağınızı bulmalısınız ve sonra da bu değeri int'e çevirip, exponential_expression'a argüman olarak vermelisiniz. Dönen değeri de sonuç ekranıyla alakalı widget hangisi ise ona argüman olarak paslamalısınız.
(burayı belirtiyor önce) a = exponential_expression(x=self.lineEdit.text())
while (y := math.log(x, count)) != int(y):
TypeError: must be real number, not str
bu söylediğiniz kısım için yarın dönüş yapmaya çalışacağım.
Şimdi uğraşmaya kalksam, acil yapmam gereken şeyler var.
Tekrar yardımlarınız için teşekkür ederim.