Precedensi Operator Python

Helo, pemrogram Python yang berhasrat! Hari ini, kita akan membahas tentang topik yang mungkin kelihatan agak menakutkan pada awalnya, tetapi saya janji anda akan menemukan ia menarik sekali kita membongkarnya. Kita akan membicarakan tentang Precedensi Operator Python. Pikirkan ia seperti "aturan urutan" operasi di Python. Mari kita memulakan perjalanan yang menarik ini bersama-sama!

Python - Operator Precedence

Apa itu Precedensi Operator?

Sebelum kita melompat ke perincian khusus Python, mari kita fahami apa arti precedensi operator secara umum. Bayangkan anda berada di atas dapur yang sibuk (tetap bersama saya di sini, saya janji analogi ini akan masuk akal). Di atas dapur ini, juru masak yang berbeza mengambil tanggungjawab untuk kerja yang berbeza. Ada yang sedang memotong sayur, ada yang sedang menggoreng, dan ada yang sedang menyusun di atas rak. Sekarang, kerja ini perlu dilakukan dalam susunan tertentu untuk mencipta makanan yang sempurna. Susunan ini sama seperti precedensi operator dalam pemrograman.

Di Python, apabila anda menulis ungkapan dengan beberapa operator, precedensi operator menentukan urutan di mana operasi ini dilakukan. Seperti analogi dapur kita, beberapa operasi mempunyai keutamaan lebih daripada yang lain.

Mari lihat contoh yang simple:

result = 5 + 3 * 2
print(result)

Apa yang anda fikirkan outputnya akan jadi? Jika anda menjawab 11, anda betul! Tetapi kenapa?

Ini adalah di mana precedensi operator datang ke tempatnya. Di Python (dan kebanyakan bahasa pemrograman), perkalian mempunyai precedensi lebih tinggi daripada penjumlahan. Jadi, ungkapan ini dievaluasi sebagai:

  1. Pertama, 3 * 2 dihitung, menghasilkan 6
  2. Kemudian, 5 ditambahkan ke 6, memberikan kita 11

Jika kita ingin mengubah susunan ini, kita akan menggunakan tanda kurung, seperti ini:

result = (5 + 3) * 2
print(result)

Kini outputnya akan menjadi 16, kerana tanda kurung mempunyai precedensi tertinggi, memaksa penjumlahan untuk terjadi sebelum perkalian.

Jadual Precedensi Operator Python

Sekarang kita telah memahami konsepnya, mari kita lihat jadual penuh precedensi operator di Python. Ingat, operator di atas jadual mempunyai precedensi lebih tinggi daripada yang di bawah.

Precedensi Operator Keterangan
1 () Tanda kurung
2 ** Eksponen
3 +x, -x, ~x Unary plus, minus, dan bitwise NOT
4 *, /, //, % Perkalian, pembahagian, pembahagian lantai, modulus
5 +, - Penjumlahan dan pengurangan
6 <<, >> Operator shift bitwise
7 & Bitwise AND
8 ^ Bitwise XOR
9 | Bitwise OR
10 ==, !=, >, >=, <, <=, is, is not, in, not in Perbandingan, identifikasi, dan operator keanggotaan
11 not Logical NOT
12 and Logical AND
13 or Logical OR

Jangan khawatir jika beberapa operator ini kelihatan asing. Kita akan fokus kepada yang paling umum untuk masa ini.

Contoh Precedensi Operator Python

Mari kita lihat beberapa contoh untuk melihat bagaimana jadual precedensi ini bekerja di atas praktek.

Contoh 1: Operator Aritmatik

result = 10 + 5 * 2 - 3 ** 2
print(result)

Mari kita pecahkan langkah demi langkah:

  1. 3 ** 2 = 9 (Eksponen mempunyai precedensi tertinggi)
  2. 5 * 2 = 10 (Perkalian adalah selanjutnya)
  3. 10 + 10 - 9 = 11 (Penjumlahan dan pengurangan dilakukan dari kiri ke kanan)

Jadi, hasil akhir adalah 11.

Contoh 2: Operator Perbandingan dan Logikal

x = 5
y = 10
z = 15

result = x < y and y < z or x == z
print(result)

Ini adalah bagaimana ia dievaluasi:

  1. x < y adalah True
  2. y < z adalah True
  3. x == z adalah False
  4. True and True adalah True
  5. True or False adalah True

Jadi, hasil akhir adalah True.

Contoh 3: Campuran jenis Operator Berbeza

a = 2
b = 3
c = 4

result = a * b ** 2 + c > (a + b) * c and not a == b
print(result)

Mari kita pecahkan:

  1. b ** 2 = 9 (Eksponen pertama)
  2. a * 9 = 18 (Perkalian berikutnya)
  3. 18 + c = 22 (Penjumlahan)
  4. (a + b) = 5 (Tanda kurung mempunyai precedensi tertinggi)
  5. 5 * c = 20 (Perkalian)
  6. 22 > 20 adalah True (Perbandingan)
  7. a == b adalah False (Pemeriksaan kesamaan)
  8. not False adalah True (Logical NOT)
  9. True and True adalah True (Logical AND)

Hasil akhir adalah True.

Kesimpulan

Memahami precedensi operator adalah penting untuk menulis kod Python yang betul dan efisien. Ia membantu anda memprediksi bagaimana ungkapan anda akan dievaluasi dan menghindari hasil yang tidak dijangka. Ingat, apabila kamu ragu, gunakan tanda kurung untuk menentukan secara eksplisit urutan operasi. Ia tidak hanya mengesahkan kod anda bekerja seperti yang dikehendaki tetapi juga membuatnya lebih mudah dibaca oleh orang lain (dan diri anda di masa depan!).

Apabila anda teruskan perjalanan Python anda, anda akan menjadi lebih biasa dengan aturan precedensi ini. Jangan khawatir jika ia kelihatan berlebihan pada awalnya – dengan latihan, ia akan menjadi wajah kedua. Teruskan untuk mengkod, teruskan untuk eksperimen, dan yang paling penting, bersenang-senang! Akhirnya, pemrograman adalah seperti memasak – semakin banyak anda latih, semakin baik "hidangan" anda akan jadi. Selamat coding, juru masak Python masa depan!

Credits: Image by storyset