Mencari Null dengan Python? . Namun, Python tidak memilikinya, yang paling mirip dengan Null dari bahasa pemrograman lain. Mari jelajahi objek None Python
Jika Anda terbiasa dengan bahasa pemrograman lain seperti Java, JavaScript, atau PHP, Anda mungkin bertanya-tanya apakah Python memiliki nilai Null yang berfungsi sama dengan Null di bahasa lain
Jawaban singkatnya adalah tidak ada Null di Python, tetapi ada objek None yang digunakan programmer Python untuk mendefinisikan objek dan variabel null. Namun, penting untuk dipahami bahwa meskipun Tidak ada yang melayani beberapa tujuan yang sama dengan Null dalam bahasa lain, ini masih sangat berbeda dari Null yang mungkin biasa Anda gunakan.
Nilai Null khusus yang digunakan dalam banyak bahasa pemrograman (mis. g. C, Java, JavaScript, PHP) menunjukkan pointer kosong, nilai yang tidak diketahui, atau variabel yang belum diinisialisasi. Seringkali, Null didefinisikan sebagai 0 dalam bahasa ini. Dalam Python, Tidak Ada dapat melayani tujuan yang sama seperti Null tetapi tidak didefinisikan sebagai 0 atau nilai lainnya. Tidak ada dalam Python adalah objek dan warga negara kelas satu
Pada artikel ini, saya akan membahas apa artinya ini dan bagaimana Anda dapat menggunakan None Python secara efektif. Kemudian, Anda dapat langsung mulai berlatih Python dengan Dasar-Dasar Python kami. Kursus Bagian 1, yang mencakup konsep kunci level awal dengan 95 latihan interaktif
Tidak ada dengan Python. Menyelam Dalam
Mari kita mulai dengan mengidentifikasi beberapa hal yang tidak ada. Itu tidak sama dengan Salah, meskipun objek Tidak Ada adalah palsu (mis. g. dievaluasi menjadi false dalam operasi Boolean). Juga, Tidak ada bukan nol atau string kosong. Setiap perbandingan dengan objek None mengembalikan False, kecuali untuk membandingkan None dengan dirinya sendiri
Untuk membantu Anda memahami apa itu objek Python None, kami akan membahas beberapa kasus penggunaan, termasuk
- Menetapkan Tidak Ada ke variabel
- Pengujian untuk Tidak Ada
- Mendapatkan Tidak Ada sebagai keluaran fungsi
- Menggunakan Tidak Ada sebagai parameter default
Menetapkan Objek Tidak Ada ke Variabel
Beberapa bahasa pemrograman memungkinkan untuk memperkenalkan variabel baru melalui deklarasi tanpa nilai awal yang ditetapkan secara eksplisit. Nilai awal default dalam kasus seperti itu sering kali adalah Null
Dalam Python, semuanya bekerja sangat berbeda. Untuk memperkenalkan variabel baru, Anda perlu menetapkan nilai tertentu padanya, yang bisa berupa objek Tidak Ada. Jika Anda tidak menetapkan nilai apa pun ke suatu variabel, itu dianggap tidak terdefinisi dan Anda akan mendapatkan None6 saat merujuknya
Sebagai contoh, mari kita coba mencetak variabel yang tidak terdefinisi vs. variabel yang diberi objek Tidak ada
print (employees) _Keluaran
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees)Keluaran
Namun, objek None tidak dapat dimodifikasi, dirujuk dengan metode Python, atau digunakan dengan operator. Jika Anda merujuk ke objek Tidak Ada dalam kasus seperti itu, Anda akan mendapatkan None7. Misalnya
employees = None print(employees + 1)Keluaran
TypeError Traceback (most recent call last) <ipython-input-5-e26d03919a86> in <module>() ----> 1 print(employees + 1) TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' _Seperti yang Anda lihat di traceback, kesalahan disebabkan dengan merujuk ke objek Tidak Ada
Memeriksa Jika Variabel Tidak Ada
Anda dapat memeriksa apakah variabel ditugaskan Tidak ada dengan menggunakan operator None8 dan None9
employees = None if employees is None: print("It is a None object.") else: print("It is not a None object ") _Keluaran
It is a None object.Perhatikan bahwa penting untuk menggunakan operator identitas (seperti None8 dan None9) dengan objek None di Python dan bukan operator kesetaraan seperti employees = None print(employees + 1) 2 dan employees = None print(employees + 1) 3. Masalahnya adalah bahwa operator kesetaraan dapat menampilkan hasil yang salah saat Anda membandingkan objek yang ditentukan pengguna yang menimpanya. Ini sebuah contoh
class EquityVsIdentity(): def __eq__ (self, other): return True check = EquityVsIdentity() print(check == None) print(check is None)Keluaran
True FalseDi sini, operator kesetaraan (“employees = None print(employees + 1) 2”) mengembalikan jawaban yang salah karena diganti oleh objek yang ditentukan pengguna, sedangkan operator identitas (employees = None print(employees + 1) 5) mengembalikan hasil yang benar karena tidak dapat diganti
Hal lain yang menarik untuk diperhatikan adalah bahwa karena objek Tidak ada yang salah, Anda cukup menggunakan pernyataan if untuk memeriksa apakah variabelnya Tidak ada atau tidak
employees = None if employees: print("It is not a None object.") else: print("It is a None object.")Keluaran
It is a None object.Tidak ada sebagai keluaran fungsi
Pertama-tama, Tidak ada adalah nilai yang dikembalikan ketika tidak ada pernyataan employees = None print(employees + 1) 6 dalam suatu fungsi. Mari buat fungsi yang tidak mengembalikan nilai apa pun dan periksa hasilnya
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) 1Keluaran
Seperti yang Anda lihat, fungsi di atas tidak mengembalikan nilai secara eksplisit. Python memberikan pernyataan pengembalian implisit dengan Tidak ada sebagai nilai pengembalian. Lihat panduan ini tentang mendefinisikan fungsi dengan Python untuk mempelajari lebih lanjut tentang kasus di mana Anda mungkin ingin fungsi Anda melakukan beberapa operasi tanpa mengembalikan nilai apa pun
Beberapa fungsi mengembalikan objek aktual saat memiliki hasil nyata dan Tidak ada saat tidak ada hasil. Paket re untuk memproses ekspresi reguler di Python memiliki sejumlah fungsi seperti itu
Anda dapat memeriksa apakah fungsi mengembalikan nilai dengan membandingkan hasilnya dengan Tidak ada. Sebagai contoh, mari jelajahi output dari fungsi employees = None print(employees + 1) 7 dari paket re ketika tidak ada kecocokan
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) _3Keluaran
Di sini, bahasa Spanyol bukan salah satu bahasa yang digunakan orang ini. Jadi, saat mencari "Spanyol", kami mendapatkan objek Tidak Ada. Kami telah memeriksa dan memastikan bahwa output dari fungsi employees = None print(employees + 1) 7 adalah Tidak ada dalam kasus ini
Tidak ada sebagai Nilai Default untuk Parameter Opsional
Akhirnya, Tidak ada sangat sering digunakan sebagai nilai default untuk parameter opsional dari suatu fungsi, terutama ketika Anda harus berurusan dengan tipe data yang dapat diubah seperti daftar. Jika Anda menyetel nilai default parameter ke daftar, daftar ini akan diperbarui di semua pemanggilan fungsi berikutnya yang tidak menentukan parameter opsional yang sesuai – sementara Anda biasanya menginginkan daftar kosong baru setiap kali
Ini akan menjadi lebih jelas setelah contoh. Kami akan mulai dengan membuat fungsi yang menggunakan daftar sebagai nilai default untuk parameter opsional
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) _4Keluaran
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) 5Seperti yang Anda lihat, kami telah membuat fungsi yang menempatkan elemen baru di posisi #1 pada daftar. Performanya baik saat kami memberikan parameter mulai. Namun, jika kami tidak memberikan parameter opsional ini, kami mulai melihat perilaku yang salah dengan setiap panggilan baru ke fungsi tersebut
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) 6Keluaran
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) 7Keluaran
NameError Traceback (most recent call last) <ipython-input-2-d63c9378cee4> in <module>() ----> 1 print (employees) NameError: name 'employees' is not defined employees = None print (employees) _8Keluaran
Karena daftar adalah jenis objek yang dapat diubah, kami mendapatkan daftar yang diperbarui setelah setiap pemanggilan fungsi saat kami tidak meneruskan daftar yang ada
Jika Anda ingin memiliki daftar baru dengan setiap panggilan, pertimbangkan untuk menggunakan objek Tidak ada sebagai parameter default
None0Keluaran
None_1Dalam fungsi ini, kami memeriksa apakah daftar awal adalah Tidak ada; . Ini memastikan bahwa kami mendapatkan perilaku yang benar saat kami tidak memberikan daftar awal ke fungsi tersebut
None_2Keluaran
None_3Keluaran
None_4Keluaran
None5Sekarang kita mendapatkan output yang benar, tidak peduli berapa kali kita memanggil fungsi tersebut. Ini hanyalah salah satu contoh bagaimana objek None dapat digunakan secara efektif sebagai nilai default untuk parameter opsional
Ayo Berlatih Tidak Ada dengan Python
Meskipun Python tidak memiliki nilai Null seperti yang biasa Anda gunakan, ia memiliki semua alat yang diperlukan untuk menangani nilai null. Selain itu, karena sintaksis Python yang sederhana dan mudah diikuti, Anda dapat mempelajari dasar-dasar Python dengan sangat cepat – mungkin dalam waktu kurang dari sebulan. Kuncinya adalah mengambil pendekatan terstruktur untuk belajar dan melakukan banyak pengkodean
Jika Anda sangat baru dalam Python, saya sarankan untuk memulai dengan kursus Dasar-Dasar Python Bagian 1. Dalam 95 latihan interaktifnya, Anda akan belajar cara menerima input dari pengguna, menggunakan variabel dan matematika dengan Python, dan menulis pernyataan if, loop, dan fungsi. Anda juga akan mendapatkan pemahaman yang lebih baik tentang tipe Tidak Ada. Anda dapat membaca lebih lanjut tentang kursus ini di artikel ikhtisar ini
Saat Anda siap untuk mempelajari lebih lanjut, lihat trek Belajar Pemrograman dengan Python. Ini mencakup lima kursus interaktif dengan ratusan tantangan pengkodean. Setelah menyelesaikan jalur pembelajaran ini, Anda akan memiliki pemahaman yang baik tentang struktur data Python, termasuk daftar, set, kamus, dan tupel. Anda juga akan merasa nyaman menggunakan algoritme dan fungsi bawaan kunci, seperti yang digunakan untuk mencari dan menyortir di Python