Cara menggunakan NONETYPE pada Python

Di Python, tidak ada batal kata kunci, tapi ada Tidak ada . Tidak ada nilai pengembalian fungsi yang “tidak mengembalikan apapun “. Tidak ada sering digunakan untuk mewakili tidak adanya nilai, karena parameter default tidak diteruskan ke fungsi. Anda tidak dapat menetapkan batal nilai variabel; Jika Anda melakukannya, itu ilegal, dan itu akan meningkatkan a Kesalahan sintaks

data = null
print(data) 

Keluaran

Traceback (most recent call last):
  File "/Users/krunal/Desktop/code/pyt/database/app.py", line 1, in 
    data = null
NameError: name 'null' is not defined 

Keypoints of None in Python

  1. Perbandingan Tidak ada untuk apapun akan selalu kembali PALSU kecuali Tidak ada diri.
  2. Tidak ada bukan sebuah
  3. Tidak ada bukan string kosong
  4. Tidak ada tidak sama seperti PALSU

Nonetype Python

Negatif adalah jenis a Tidak ada Obyek di Python. Itu Tidak ada kata kunci adalah obyek , tipe data kelas Negatif . Kami dapat menetapkan Tidak ada ke variabel apa pun, tetapi kami tidak dapat membuat yang lain Negatif objek. Nonetype hanyalah jenis singleton yang tidak ada.

print(type(None)) 

Keluaran

 

Untuk memeriksa tipe data variabel dalam python, gunakan metode type ().

Jika ekspresi reguler Python di re.search tidak cocok, itu mengembalikan Negatif obyek.

Memeriksa apakah suatu variabel tidak ada

Untuk memeriksa apakah suatu variabel tidak ada atau tidak, gunakan adalah operator di Python. Dengan operator IS, gunakan objek sintaks tidak ada yang mengembalikan true jika objek memiliki tipe nonetype dan PALSU jika tidak.

data = None

if data is None:
    print("It is in fact a None")
else:
    print("No, it is Not None") 

Keluaran

It is in fact a None 

Anda dapat melihat bahwa operator mengembalikan true karena data tidak ada, dan karenanya jika kondisi kembali benar dan menjalankan tubuhnya, yang akan mencetak “ Itu sebenarnya tidak ada “.

Membandingkan Tidak Ada dengan Tipe Salah

Anda tidak dapat membandingkannya dengan PALSU nilai, tetapi mengembalikan false karena false dan tidak ada yang bukan nilai yang sama.

data = None

print(data == False) 

Keluaran

False 

Itu Tidak ada Kata kunci juga digunakan untuk mencocokkan atau mengidentifikasi apakah fungsi tertentu mengembalikan nilai apa pun atau tidak.

TypeError: Objek ‘Nonetype’ tidak dapat diulang

Agar objek menjadi iterable Dalam Python, itu harus mencakup nilai. SEBUAH Tidak ada Nilai tidak dapat diulang karena tidak memiliki nilai atau objek apa pun. Ini karena tidak ada mewakili nilai nol dalam python.

Ada perbedaan antara a Tidak ada objek dan kosong iterable . Itu Objek ‘Nonetype’ bukanlah iterable kesalahan dan tidak dihasilkan jika Anda memilikinya daftar kosong atau a rangkaian

Secara teknis, Anda dapat mencegah Negatif pengecualian dengan memeriksa apakah nilai sama dengan Tidak ada Menggunakan operator IS atau == operator sebelum Anda mengulangi nilai itu.

Untuk menyelesaikan kesalahan nonetype, pastikan bahwa nilai apa pun yang Anda coba untuk berulang harus diberikan objek yang dapat diulang, seperti string atau a daftar

Pos terkait

Python tidak memeriksa apa pun

np.nan

np.isnan

Python Check Nan

Tidak ada batal dengan Python; sebagai gantinya, ada Tidak ada. Python batal disebut Tidak ada yang merupakan objek khusus yang mewakili tidak adanya nilai. Objek Python Null adalah singleton Tidak ada. Setara dengan kata kunci nol adalah Tidak ada. Banyak yang berpendapat bahwa kata null agak esoteris.

Batal bukanlah kata yang paling ramah untuk pemula pemrograman. Juga, None merujuk secara tepat ke fungsi yang dimaksudkan – itu bukan apa-apa dan tidak memiliki perilaku. Dengan Python, Tidak ada adalah objek dan warga negara kelas satu!

Banyak bahasa pemrograman menggunakan Batal untuk mewakili pointer yang tidak menunjuk ke apa pun. Ini semacam placeholder ketika variabel kosong atau untuk menandai parameter default yang belum Anda berikan. Null sering didefinisikan sebagai 0 dalam bahasa tersebut, tetapi Null dalam Python berbeda.

  • Sejarah Null
    • Null di Jawa
    • Null Di PHP
  • Tidak ada di Python
      • Keluaran
      • Keluaran
  • Bukti bahwa Tidak Ada yang Obyek
  • Fakta Menarik tentang Tidak Ada
  • Mendeklarasikan Tidak Ada dengan Python
      • Keluaran
      • Keluaran
  • Menggunakan Tidak Ada sebagai bagian dari perbandingan
    • Perbedaan antara == dan Python adalah Operator.
      • Keluaran
      • Keluaran
  • Memeriksa jenis Tidak Ada
      • Keluaran
  • Using None as a Value in Python
      • Keluaran
      • Keluaran
  • Memeriksa Tidak Ada menggunakan kondisi if…else.
  • Hanya ada satu Tidak Ada di Python.
  • Memeriksa apakah nilainya Tidak Ada
  • Tidak ada di Tracebacks
      • Keluaran
  • Kesimpulan
  • Postingan yang Direkomendasikan

Sejarah Null

Dalam kebanyakan bahasa berorientasi objek, penamaan objek cenderung menggunakan sintaks camel-case. Misalnya ThisIsMyObject. Seperti yang akan segera Anda lihat, tipe None Python adalah objek dan berperilaku seperti objek.

Seperti yang sudah dinyatakan, cara paling akurat untuk menguji bahwa sesuatu telah diberikan None sebagai nilainya adalah dengan menggunakan operator identitas is, yang menguji bahwa dua variabel merujuk ke objek yang sama.

Misalnya, dalam bahasa pemrograman lain, ini adalah bagaimana Anda dapat membuat variabel null di PHP dan Java. Mari kita lihat bagaimana Java dan PHP lainnya mendefinisikan variabel Null.

Null di Jawa

myVariable = null;

Null Di PHP

$myVariable = NULL;

Jika Anda perlu mengevaluasi variabel dalam kondisi if, Anda dapat memeriksanya sebagai berikut di Java:

if(myVariable == null) {
  System.out.println(Some output);
}

Cara menggunakan ‘Tidak ada‘ dengan Python. Saya akan menggunakannya dalam pernyataan if dan tipe data gabungan.

Itu Tidak ada kata kunci dalam Python digunakan untuk mendeskripsikan nilai nol atau tidak ada nilai sama sekali. Tidak ada bukan berarti nilai 0, PALSU, atau string kosong. Tidak ada yang merupakan tipe datanya sendiri (Tidak AdaTipe), dan hanya Tidak ada dapat Tidak ada. Jika Anda mendefinisikan fungsi yang memiliki pernyataan pengembalian atau tidak mengembalikan nilai, maka fungsi tersebut kembali Tidak ada.

def python_none():
    pass


print(python_none())

Keluaran

None

Saat Anda memanggil fungsi python_none() , ia mengembalikan None karena tidak ada pernyataan pengembalian. Sebaliknya, hanya ada pernyataan lulus.

Tidak ada yang tidak memiliki nilai keluaran, tetapi pencetakan menunjukkan Tidak Ada ke konsol Python, secara eksplisit memaksa kami untuk mencetak keluaran.

Tidak ada yang menunjukkan parameter yang hilang atau default. Misalnya, None muncul dua kali di dokumen untuk list.sort.

print(help(list.sort))

Keluaran

sort(self, /, *, key=None, reverse=False)
    Sort the list in ascending order and return None.

    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
    order of two equal elements is maintained).

    If a key function is given, apply it once to each list item and sort them,
    ascending or descending, according to their function values.

    The reverse flag can be set to sort in descending order.

Di output, Anda dapat melihat bahwa kunci parameter memiliki nilai Tidak Ada. Itu berarti parameter kunci diperlukan, tetapi kami belum menyediakannya; itu sebabnya parameter default adalah Tidak Ada.

Bukti bahwa Tidak Ada yang Obyek

None adalah singleton, dan kelas NoneType hanya memberi Anda satu instance None yang sama. Hanya ada satu None dalam program Python kami.

NoneObj = type(None)()
print(NoneObj)

# Check if NoneObj is instance of NoneType class
print(NoneObj is None)

Ini memberikan output berikut.

None
True

Meskipun Anda mencoba membuat instance baru, Anda masih mendapatkan None yang ada.

Fakta Menarik tentang Tidak Ada

  1. Tidak ada tidak sama dengan PALSU.
  2. Tidak ada bukan string kosong.
  3. Tidak ada tidak 0.
  4. Perbandingan Tidak ada untuk apapun akan selalu kembali PALSU kecuali Tidak ada diri.

Mendeklarasikan Tidak Ada dengan Python

Kami dapat menetapkan objek None ke variabel apa pun pada saat deklarasi. Variabel Python menjadi hidup oleh operator penugasan, yang membantu kita menetapkan nilai tertentu ke variabel. Beberapa bahasa pemrograman tidak harus memiliki nilai awal yang ditetapkan untuknya. Misalnya, nilai awal untuk beberapa jenis variabel mungkin: Batal.

Mari kita tetapkan nilai None ke variabel dengan Python dan mencetak variabel di konsol.

data = None
print(None)

Keluaran

None

Jika kita tidak mendefinisikan variabel dan langsung mencetak nilainya, kita akan mendapatkan NamaKesalahan.

print(data)

Keluaran

Traceback (most recent call last):
  File "app.py", line 2, in <module>
    print(data)
NameError: name 'data' is not defined

Semua variabel dalam Python menjadi hidup oleh operator penugasan. Variabel hanya dapat memulai hidup sebagai Null jika Anda menetapkan Tidak ada. Jika Anda tidak mendefinisikan variabel dan langsung mencoba mencetak di konsol, Anda akan mendapatkan NamaKesalahan.

Menggunakan Tidak Ada sebagai bagian dari perbandingan

Tidak ada nol di Python. Sebaliknya, tidak ada. Seperti yang sudah dinyatakan, cara paling akurat untuk menguji bahwa sesuatu telah diberikan None sebagai nilai adalah dengan menggunakan operator identitas is, yang menguji bahwa dua variabel merujuk ke objek yang sama.

Dalam Python, untuk mewakili tidak adanya nilai, Anda dapat menggunakan a Tidak ada nilai (jenis.Tidak AdaTipe.Tidak ada) untuk objek dan  (or len() == 0) for strings.

Regarding the difference between == dan is, pengujian untuk identitas objek menggunakan == harus cukup.

Namun, sejak operasi is didefinisikan sebagai operasi identitas objek, mungkin lebih tepat untuk menggunakannya, daripada ==. Tidak yakin apakah ada perbedaan kecepatan.

Aturan praktis yang penting adalah untuk diingat saat memeriksa nilai None.

  1. Apakah menggunakan operator identitas dan tidak.
  2. Jangan gunakan operator persamaan == dan !=.

Perbedaan antara == dan Python adalah Operator.

Perbedaan antara == dan adalah operator di Python apakah itu == operator membandingkan nilai dari kedua operan dan memeriksa kesetaraan nilai. Sedangkan adalah operator memeriksa apakah kedua operan merujuk ke objek yang sama.

Lihat kode berikut.

# app.py

eleven = None
print(eleven is None)

Lihat keluaran berikut.

➜  pyt python3 app.py
True
➜  pyt

Sekarang, lihat kode berikut.

def python_none():
    pass


data = python_none()
print(data == None)
print(data is None)

Keluaran

True
True

Kode ini mengembalikan Tidak Ada, dan kami memeriksa dengan dua cara bahwa data memang Tidak Ada.

Tapi, Operator kesetaraan bisa tertipu saat Anda membandingkan objek yang ditentukan pengguna yang mengesampingkan mereka.

class isAndDoubleEqual:
    def __eq__(self, other):
        return True


res = isAndDoubleEqual()
print(res == None)
print(res is None)

Keluaran

True
False

Operator persamaan == mengembalikan jawaban yang salah.

Identitas is operator mengembalikan jawaban yang benar karena tidak dapat dibodohi karena Anda tidak dapat menimpanya.

Memeriksa jenis Tidak Ada

Dalam bahasa pemrograman lain, Null hanyalah sinonim untuk 0, tetapi Null dalam Python adalah sebuah objek.

Periksa tipe None menggunakan metode type().

print(type(None))

Keluaran

<class 'NoneType'>

Ini menunjukkan bahwa None adalah objek, dan tipe datanya adalah NoneType.

Tidak ada dengan sendirinya dibangun ke dalam bahasa sebagai Null di Python. Namun, Anda dapat memeriksanya dengan mencetak dir(__builtins__).

print(dir(__builtins__))

Ini akan mencetak item inbuilt berikut.

['ArithmeticError',..., None,....., zip

Using None as a Value in Python

We can pass None as a function parameter in Python and add it to the list. First, we will define a class, and we don’t define its body. Then, we create a function called list_function(), which takes two parameters.

  1. new_item: This item will be added to the list if we pass when calling the function.
  2. initial_list: As a default parameter, the list should be None, but if we pass any argument explicitly, it will return the initial list.
class DoAppendNone:
    pass


def list_function(new_item=DoAppendNone, initial_list=None):
    if initial_list is None:
        initial_list = []
    
    jika new_item bukan DoAppendNone: initial_list.append(new_item) kembalikan data initial_list = [1, 2, 3, 4, 5]
print(daftar_fungsi(initial_list=data))

Keluaran

[1, 2, 3, 4, 5]

Kami telah melewati dua parameter dengan nilai default list_function().

  1. new_item = DoAppendNone
  2. initial_list = Tidak ada

Dalam kode, kami telah melewati initial_list sebagai data karena kami memiliki daftar data yang memiliki lima elemen.

Jadi, saat memanggil fungsi, initial_list = data.

Itu berarti, di dalam fungsi, kami telah memeriksa apakah initial_list adalah None atau tidak, tetapi tidak Tidak ada karena kami memiliki daftar item dalam data sehingga kondisi itu akan menjadi PALSU.

Kondisi kedua adalah new_element tidak boleh DoAppendNone, tetapi memang demikian. Jadi kondisi itu akan Salah juga. Jadi, tidak ada elemen baru yang akan ditambahkan ke daftar.

Akhirnya, daftar data yang disediakan akan dikembalikan sebagai output.

Sekarang, bagaimana jika None adalah objek input yang valid? Misalnya, bagaimana jika list_function() dapat menyisipkan item ke daftar atau tidak, dan Tidak ada elemen yang valid untuk ditambahkan? Dalam hal ini, Anda dapat mendefinisikan kelas secara khusus untuk digunakan sebagai default sementara berbeda dari Tidak Ada.

Jadi, mari kita tulis program yang menyisipkan nilai None sebagai elemen ke dalam daftar.

class DoAppendNone:
    pass


def list_function(new_item=DoAppendNone, initial_list=None):
    if initial_list is None:
        initial_list = []
    if new_item is not DoAppendNone:
        initial_list.append(new_item)
    return initial_list


data = [1, 2, 3, 4, 5]
print(list_function(None, data))

Keluaran

[1, 2, 3, 4, 5, None]

Di sini, kelas Jangan Tambahkan Tidak Ada berfungsi sebagai sinyal untuk tidak menambahkan, jadi Anda tidak mau Tidak ada untuk itu. Itu membebaskan kita untuk memasukkan Tidak ada kapanpun kamu mau.

Memeriksa Tidak Ada menggunakan kondisi if…else.

Kita dapat menulis kode berikut untuk memeriksa apakah nilainya Tidak ada.

# app.py

value = None

if value is None:
    print('The value is null')
else:
    print('The value is not null')

Dalam contoh di atas, kami telah mendefinisikan variabel yang disebut nilai dan menetapkan Tidak ada nilai.

Kemudian, kita telah menggunakan kondisi if…else untuk memeriksa nilai None, dan jika ya, kembalikan pernyataan print dengan The value is null.

Kita dapat menggunakan kode berikut untuk memeriksa apakah nama tersebut ada.

try:
    val
except NameError:
    pass  # val does not exist at all

Hanya ada satu Tidak Ada di Python.

Itu Tidak ada adalah konstanta bawaan segera setelah Anda memulai Python, baik dalam modul, kelas, atau fungsi. Itu Bukan Tipe, sebaliknya, tidak; Anda harus mendapatkan referensi terlebih dahulu dengan menanyakan Tidak ada untuk kelasnya.

>>> NoneType
NameError: name 'NoneType' is not defined
>>> type(None)
NoneType

Tidak ada yang tidak dapat ditimpa.

Sebelum Python 2.4, dimungkinkan untuk menetapkan kembali Tidak ada, tapi tidak lagi. Bahkan tidak sebagai atribut kelas atau dalam batas-batas suatu fungsi.

Memeriksa apakah nilainya Tidak Ada

Kenapa melakukan ini

value is None

daripada

value==None

Yang pertama setara dengan:

id(value)==id(None)

Sedangkan ekspresi nilai == Tidak ada diterapkan seperti ini,

value.__eq(None)__

jika nilainya Tidak Ada, maka Anda akan mendapatkan apa yang Anda harapkan.

>>> nothing = function_that_does_nothing()
>>> nothing.__eq__(None)
True

Ini karena tidak ada yang memiliki status khusus dalam bahasa Python. Ini adalah nilai dasar yang disukai karena banyak algoritme memperlakukannya dengan luar biasa.

Dalam skenario seperti itu, ini dapat digunakan sebagai tanda untuk memberi sinyal bahwa kondisi memerlukan penanganan khusus, seperti menyetel nilai default.

Tidak ada di Tracebacks

Ketika NoneType muncul di traceback Anda, itu berarti sesuatu yang tidak Anda harapkan menjadi None ternyata None, dan Anda mencoba menggunakannya dengan cara yang tidak bisa Anda gunakan None. Hampir selalu, itu karena Anda mencoba memanggil metode di dalamnya.

data = [1, 2, 3, 4, 5]

data.append(6)
print(data)

data = None
data.append(11)
print(data)

Keluaran

[1, 2, 3, 4, 5, 6]
Traceback (most recent call last):
  File "app.py", line 7, in <module>
    data.append(11)
AttributeError: 'NoneType' object has no attribute 'append'

Ketika kita mendefinisikan sebuah daftar dengan beberapa nilai awal, itu dapat memanggil fungsi list.append() untuk menambahkan elemen ke daftar, tetapi ketika kita mendefinisikan sebuah daftar ke Tidak Ada, itu berarti, sekarang daftar itu bukan daftar Python tradisional, itu list sekarang Tidak Ada, dan objek Tidak Ada tidak memiliki metode append() untuk digunakan, itulah sebabnya ia melempar AtributError.

Saat Anda melihat traceback seperti di atas dalam kode Anda, cari atribut pertama yang memunculkan kesalahan. Di sini, ini adalah metode append(). Dari sana, Anda akan melihat objek yang Anda coba panggil. Akhirnya, cari tahu bagaimana objek itu menjadi Tidak Ada dan ambil langkah-langkah yang diperlukan untuk memperbaiki kode Anda.

Kesimpulan

Tidak ada dalam Python adalah kata kunci yang tidak dapat diubah dan alat yang kuat seperti BENAR atau PALSU. Tidak ada yang dapat diuji menggunakan in atau tidak di operator. Dalam traceback, None dapat membantu untuk menemukan masalah yang sebenarnya, dan kami dapat memperbaikinya dengan memecahkan masalah Null. Hanya ada satu None dalam program Python apa pun, dan bahkan jika Anda membuat instance kelas NoneType, hanya ada satu None.

Akhirnya, Python Null atau None Example selesai.

Postingan yang Direkomendasikan

Python Bukan Operator yang Sama

Nilai Absolut Python

Python persegi()

Python stddev()

varians Python()