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"?

Ent Entitas
sumber
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)
tskuzzy
sumber
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
1
Sebagai catatan: Operator perbandingan di Python 3.7
Ocaso Protal
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.

Levon
sumber
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.
Samy Vilar
sumber
12

Anda dapat menggunakan keduanya !=atau <>.

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

Malek B.
sumber
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 ...

gabeio
sumber
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.

Amir Md Amiruzzaman
sumber
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! =.

pengguna128364
sumber
-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]

Ehsan
sumber
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"
cgastald
sumber
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