Struktur dasar
Pelajaran 8 dari 29 dalam kursus Proyek kalkulator dengan Python di Coddy.
Langkah berikutnya adalah mengevaluasi daftar ekspresi.
Struktur dasarnya adalah - [op, num1, num2]
Beberapa contoh:
['+', 1, 2]->calc('+', 1, 2)['*', 3, 2]->calc('*', 3, 2)['/', 5.3, 0]->calc('/', 5.3, 0)
Tantangan
Mudahbuat fungsi eval yang menerima struktur dasar, yaitu list seperti yang dijelaskan di atas, lalu mengembalikan hasil perhitungan.
Gunakan fungsi calc yang kamu buat!
Coba sendiri
def calc(op, n1, n2=None):
if not isinstance(n1, int) and not isinstance(n1, float):
raise Exception('Invalid number "' + str(n1) + '"')
if n2 is None:
if op == '+' or op == 'add':
return n1
if op == '-' or op == 'sub':
return -n1
raise Exception('Invalid operator "' + op + '"')
if not isinstance(n2, int) and not isinstance(n2, float):
raise Exception('Invalid number "' + str(n2) + '"')
if op == '+' or op == 'add':
return n1 + n2
if op == '-' or op == 'sub':
return n1 - n2
if op == '*' or op == 'mul':
return n1 * n2
if op == '/' or op == 'div':
if n2 == 0:
raise Exception("Division by zero")
return n1 / n2
if op == '%' or op == 'mod':
if n2 == 0:
raise Exception("Division by zero")
return n1 % n2
if op == '^' or op == 'pow':
return n1 ** n2
raise Exception('Invalid operator "' + op + '"')Semua pelajaran di Proyek kalkulator dengan Python
Latihan sendiri: Compiler Python online