Saya menulis kode untuk mengurai string ekspresi matematis, dan memperhatikan bahwa urutan operator daya yang dirantai dievaluasi dalam Python berbeda dari urutan di Excel.
Dari http://docs.python.org/reference/expressions.html :
"Jadi, dalam urutan kekuatan dan operator yang tidak dipersonalisasi, operator dievaluasi dari kanan ke kiri (ini tidak membatasi urutan evaluasi untuk operan): -1 * 2 menghasilkan -1." *
Ini berarti bahwa, dalam Python:
2**2**3
dievaluasi sebagai2**(2**3) = 2**8 = 256
Di Excel, ia bekerja sebaliknya: 2^2^3
dievaluasi sebagai(2^2)^3 = 4^3 = 64
Saya sekarang harus memilih implementasi untuk parser saya sendiri. Perintah Excel lebih mudah diterapkan, karena mencerminkan urutan evaluasi multiplikasi.
Saya bertanya kepada beberapa orang di kantor apa yang mereka rasakan untuk evaluasi 2^2^3
dan mendapat tanggapan beragam.
Adakah yang tahu alasan atau pertimbangan yang mendukung implementasi Python? Dan jika Anda tidak memiliki jawaban, silakan komentari dengan hasil yang Anda dapatkan dari firasat - 64
atau 256
?