Operator hanyalah simbol untuk sebuah aksi
Operator adalah simbol (atau kata kunci pendek) yang menyuruh Python melakukan sesuatu dengan satu atau dua nilai: menjumlahkannya, membandingkannya, memeriksa apakah yang satu berisi yang lain. Kamu sudah mengenal beberapa dari matematika dasar; Python punya beberapa lagi untuk logika, keanggotaan, dan identitas.
Kita akan membahas kategori utamanya satu per satu.
Operator aritmetika
Operator matematika standar, ditambah beberapa kekhasan Python:
Dua hal di daftar ini mudah terlupa:
/mengembalikan float meskipun kedua sisinya integer.10 / 2menghasilkan5.0. Untuk pembagian integer, pakai//.%adalah modulo.n % 2 == 0adalah cara paling rapi untuk menguji apakahngenap.
Python mengikuti urutan prioritas matematika standar: ** mengikat lebih kuat daripada * dan /, yang mengikat lebih kuat daripada + dan -. Tanda kurung mengalahkan semuanya:
Pakai tanda kurung sebanyak yang perlu kalau ada keraguan. Tidak ada ruginya, dan maksudmu jadi jelas.
Operator perbandingan
Enam perbandingan, masing-masing mengembalikan boolean:
Python memungkinkan kamu merangkai perbandingan, sesuatu yang tidak biasa tapi berguna:
Itu dibaca "age paling sedikit 18 dan kurang dari 65". Di baliknya, ini setara dengan 18 <= age and age < 65, tapi lebih mirip notasi matematika.
Operator logika
Ditulis sebagai kata bahasa Inggris, bukan simbol:
Dua detail yang perlu diketahui:
Evaluasi short-circuit. and berhenti di nilai falsy pertama; or berhenti di nilai truthy pertama. Sisi kanan bahkan tidak dievaluasi kalau sisi kiri sudah menentukan jawabannya. Dengan ini kamu bisa menjaga kode dari error dengan aman:
and/or mengembalikan nilainya, tidak selalu True/False. Keduanya mengembalikan operand mana pun yang menentukan hasilnya:
Kamu akan melihat name = user_input or "anonymous" di kode sungguhan: itu pola nilai default yang dibangun di atas perilaku ini.
Untuk aturan lengkap ketiga operator ini, termasuk nilai mana yang dianggap falsy, bagaimana urutan not, and, dan or satu sama lain, dan kenapa and tidak sama dengan &, lihat and, or, not di Python.
Operator penugasan
= memberi nilai. Bentuk gabungannya menggabungkan sebuah operasi dengan penugasan:
Bentuk gabungan juga bekerja untuk string (s += "more") dan list (lst += [4, 5]). Bentuk ini tidak lebih cepat daripada menulis versi lengkapnya; hanya lebih pendek.
Keanggotaan: in dan not in
Menguji apakah sebuah nilai ada di dalam sebuah container:
in bekerja pada iterable apa pun: list, tuple, set, string, dict, dan lainnya. Untuk pencarian dalam jumlah besar, in pada list itu O(n); in pada set atau dict itu O(1). Perbedaan ini terasa begitu kamu memeriksa keanggotaan berkali-kali.
Identitas: is dan is not
is memeriksa apakah dua variabel menunjuk ke objek yang sama di memori, bukan sekadar nilai yang sama:
Hampir selalu yang kamu butuhkan adalah ==. Satu tempat is benar-benar berguna adalah pengecekan terhadap None, True, dan False:
Konvensi komunitasnya tegas: is None, bukan == None. Sama juga untuk is True (meskipun kamu jarang membutuhkannya).
Operator bitwise (lewati saat pertama membaca)
Python juga punya operator bitwise (&, |, ^, ~, <<, >>) untuk mengolah bit-bit individual sebuah integer. Operator ini berguna di kriptografi, jaringan tingkat rendah, dan algoritma tertentu. Kamu bisa mengabaikannya dengan aman di bacaan pertama.
Walrus operator (:=)
Python 3.8 menambahkan :=, yang memberi nilai sekaligus mengembalikannya dalam satu ekspresi. Berguna di kondisi ketika kamu ingin menangkap sekaligus menguji sebuah hasil:
Tanpa walrus, kamu harus memanggil len(numbers) dua kali atau menambah satu baris. Operator ini tidak wajib; pakai di tempat yang mengurangi pengulangan.
Ringkasan prioritas operator
Urutan dari yang mengikat paling kuat ke paling lemah, untuk operator yang benar-benar akan kamu pakai:
**: pangkat*,/,//,%: perkalian dan pembagian+,-: penjumlahan dan pengurangan<,<=,>,>=,==,!=: perbandingannotandor
Kalau ragu, pakai tanda kurung. Kejelasan lebih penting daripada kepintaran.
Pertanyaan yang sering diajukan
Apa saja jenis utama operator di Python?
Aritmetika (+, -, *, /, //, %, **), perbandingan (==, !=, <, <=, >, >=), logika (and, or, not), penugasan (=, +=, -=, …), keanggotaan (in, not in), dan identitas (is, is not).
Apa bedanya == dan is di Python?
== memeriksa apakah dua nilai sama. is memeriksa apakah dua variabel merujuk ke objek yang persis sama di memori. Untuk None, True, dan False, pakai is, karena ketiganya singleton. Untuk yang lain, hampir selalu == yang kamu butuhkan.
Apa fungsi operator % di Python?
Untuk angka, % adalah operator modulo: ia mengembalikan sisa sebuah pembagian. 17 % 5 adalah 2. Untuk string, operator ini adalah sintaks format gaya lama (seperti "hello %s" % name), tapi f-string sudah sebagian besar menggantikannya.