İslem="4×5/2+10" şeklindeki işlemi matematiksel işlem sonucuna nasıl dönüştürürüm işlem=4×5/2+10 şekline çevirmek

Hesap makinasında ard arda gelen işlemler bir character set olarak işlemChar=“4×5/2+10” gibi sonucu
İşlemNum=4×5/2+10 gibi sonuca çevirmek.

Sorunu chat gpt ye sordum eval(x) ile çözdüm. Teşekkürler :pray:

chatgpt ye “python projesi yaparken eval() fonksiyonunu kullanmak tehlikeli midir?” sorusunu sorup biraz üzerine konuşmanız iyi olabilir.

Evet tehlikeli olduğunu söylüyor ve yerine ast.literal.eval önerisinde bulundu. Peki aldığım bir karakter dizisi içindeki matematiksel işlemi nasıl yaparım.
Sonuc=“4*8+15/2” işlemini yapmak için kısa yol nedir ?

ChatGPT aşağıdaki şekilde açıklama yapmış olmalı.

  • eval() fonksiyonu güçlüdür ancak dışardan gelen verilere uygulanırken dikkatli kullanılmalıdır, çünkü kötü niyetli kod çalıştırabilir.
  • Daha güvenli bir çözüm için, matematiksel ifadeleri işlemek üzere tasarlanmış bir kütüphane (örneğin sympy veya asteval) kullanabilirsiniz. Bu yöntem güvenlik risklerini azaltır. Örneğin:
from sympy import sympify

islem = "4*8+15/2"
sonuc = sympify(islem)
print(sonuc)

1 Beğeni

Halil hocam teşekkür ederim. Eval yerine sympify işlemi yaptı. Çok sağolun.

1 Beğeni