Apakah ada operator "tidak sama" di Python?


396

Bagaimana menurut Anda tidak sama?

Suka

if hi == hi:
    print "hi"
elif hi (does not equal) bye:
    print "no hi"

Apakah ada sesuatu yang setara dengan ==itu berarti "tidak sama"?


5
Apakah Anda bertanya tentang else, !=(opsional <>) atau is not?
Tadeck

14
Perhatian bahwa <> tidak berfungsi lagi di python 3, jadi gunakan! =
Antonello

3
dari dokumentasi python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed

1
dari dokumentasi python: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Jawaban:


624

Gunakan !=. Lihat operator perbandingan . Untuk membandingkan identitas objek, Anda dapat menggunakan kata kunci isdan negasinya is not.

misalnya

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)

20
<>tidak dihapus dari Python 3. Checkout PEP401dan coba from __future__ import barry_as_FLUFLlol ~
yegle

Bagaimana Anda membandingkan dua data biner?
Léo Léopold Hertz 준영

2
Sekadar info, PEP401 yang disebutkan dalam komentar adalah lelucon April Fool. <>tidak didukung di Python3 sekarang.
J ... S


60

Tidak sama != (vs sama ==)

Apakah Anda bertanya tentang hal seperti ini?

answer = 'hi'

if answer == 'hi':     # equal
   print "hi"
elif answer != 'hi':   # not equal
   print "no hi"

Ini Python - Dasar Operator grafik mungkin bisa membantu.


28

Ada !=operator (tidak sama) yang kembali Trueketika dua nilai berbeda, meskipun hati-hati dengan jenis karena "1" != 1. Ini akan selalu mengembalikan Benar dan "1" == 1akan selalu mengembalikan Palsu, karena jenisnya berbeda. Python secara dinamis, tetapi sangat diketik, dan bahasa yang diketik secara statis lainnya akan mengeluh tentang membandingkan berbagai jenis.

Ada juga elseklausa:

# This will always print either "hi" or "no hi" unless something unforeseen happens.
if hi == "hi":     # The variable hi is being compared to the string "hi", strings are immutable in Python, so you could use the 'is' operator.
    print "hi"     # If indeed it is the string "hi" then print "hi"
else:              # hi and "hi" are not the same
    print "no hi"

The isOperator adalah identitas obyek operator yang digunakan untuk memeriksa apakah dua benda pada kenyataannya adalah sama:

a = [1, 2]
b = [1, 2]
print a == b # This will print True since they have the same values
print a is b # This will print False since they are different objects.

12

Anda dapat menggunakan keduanya !=atau <>.

Namun, perhatikan bahwa !=lebih disukai di mana <>sudah usang.


7

Melihat semua orang telah mendaftar sebagian besar cara lain untuk mengatakan tidak sama, saya hanya akan menambahkan:

if not (1) == (1): # This will eval true then false
    # (ie: 1 == 1 is true but the opposite(not) is false)
    print "the world is ending" # This will only run on a if true
elif (1+1) != (2): #second if
    print "the world is ending"
    # This will only run if the first if is false and the second if is true
else: # this will only run if the if both if's are false
    print "you are good for another day"

dalam hal ini sangat mudah untuk memindahkan cek positif == (benar) ke negatif dan sebaliknya ...


1

Anda dapat menggunakan "tidak" untuk "tidak sama" atau "! =". Silakan lihat contoh di bawah ini:

a = 2
if a == 2:
   print("true")
else:
   print("false")

Kode di atas akan mencetak "true" sebagai a = 2 yang ditetapkan sebelum kondisi "jika". Sekarang tolong lihat kode di bawah ini untuk "tidak sama"

a = 2
if a is not 3:
   print("not equal")
else:
   print("equal")

Kode di atas akan mencetak "tidak sama" dengan a = 2 seperti yang diberikan sebelumnya.


0

Ada dua operator di Python untuk kondisi "tidak sama" -

a.)! = Jika nilai dari kedua operan tidak sama, maka kondisinya menjadi benar. (a! = b) benar.

b.) <> Jika nilai dari kedua operan tidak sama, maka kondisinya menjadi benar. (a <> b) benar. Ini mirip dengan operator! =.


-3

Gunakan !=atau <>. Keduanya tidak sama.

Operator pembanding <>dan !=merupakan ejaan alternatif dari operator yang sama. !=adalah ejaan yang disukai; <>usang [Referensi: referensi bahasa Python]


2
jawaban ini pada dasarnya adalah salinan dari yang diberikan @ user128364 sebelumnya.
SA

-5

Anda cukup melakukannya:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"

1
Nilai apa yang akan Anda tetapkan untuk variabel hidan bye? Apa pun itu, klausa elif tidak akan pernah tercapai. Terakhir, contoh ini tidak jelas memberikan jawaban atas pertanyaan.
SA
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.