มีตัวดำเนินการ "ไม่เท่ากัน" ใน Python หรือไม่


396

คุณจะพูดอย่างไรไม่เท่ากัน?

ชอบ

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

มีบางสิ่งที่เทียบเท่ากับ==ที่หมายถึง "ไม่เท่ากัน" หรือไม่?


5
คุณจะถามเกี่ยวกับelse, !=(ขยะ<>) หรือis not?
Tadeck

14
ความสนใจที่ <> ไม่ทำงานใน python 3 อีกต่อไปดังนั้นใช้! =
Antonello

3
จากเอกสาร python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed

1
จากเอกสารไพpython2: ธ อน
hamed

คำตอบ:


623

!=ใช้ ดูดำเนินการเปรียบเทียบ สำหรับการเปรียบเทียบตัวตนวัตถุคุณสามารถใช้คำหลักและลบล้างisis not

เช่น

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

20
<>จะไม่ถูกลบออกจาก Python 3. ชำระเงินPEP401และลองfrom __future__ import barry_as_FLUFLlol ~
yegle

คุณจะเปรียบเทียบข้อมูลไบนารีสองแบบได้อย่างไร
LéoLéopold Hertz 준영

2
เพียงข้อมูลบางส่วน PEP401 ที่กล่าวถึงในความคิดเห็นเป็นเรื่องตลก April Fool <>ไม่รองรับ Python3 ในขณะนี้
เจ ...



28

มีเรื่อง!=(ไม่เท่ากัน) ผู้ประกอบการที่ผลตอบแทนTrueเมื่อสองค่าที่แตกต่างกัน "1" != 1แต่ต้องระวังด้วยเพราะประเภท สิ่งนี้จะคืนค่าเป็นจริงเสมอและ"1" == 1จะคืนค่าเป็นเท็จเสมอเนื่องจากชนิดต่างกัน Python นั้นเป็นแบบไดนามิก แต่พิมพ์อย่างรุนแรงและภาษาที่พิมพ์แบบคงที่อื่น ๆ จะบ่นเกี่ยวกับการเปรียบเทียบประเภทที่แตกต่างกัน

นอกจากนี้ยังมีelseข้อ:

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

isประกอบเป็นตัวตนของวัตถุที่ผู้ประกอบการที่ใช้ในการตรวจสอบว่าวัตถุทั้งสองในความเป็นจริงจะเหมือนกัน:

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

คุณสามารถใช้ทั้งสองหรือ!=<>

อย่างไรก็ตามโปรดทราบว่า!=เป็นที่ต้องการที่<>จะเลิก


7

การเห็นว่าคนอื่น ๆ มีการระบุไว้แล้วในวิธีอื่น ๆ ส่วนใหญ่ที่จะพูดไม่เท่ากันฉันจะเพิ่ม:

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"

ในกรณีนี้มันง่ายสลับการตรวจสอบในเชิงบวก == (จริง) เพื่อลบและในทางกลับกัน ...


1

คุณสามารถใช้ "ไม่" สำหรับ "ไม่เท่ากัน" หรือ "! =" โปรดดูตัวอย่างด้านล่าง:

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

โค้ดด้านบนจะพิมพ์ "true" เป็น a = 2 ที่กำหนดไว้ก่อนเงื่อนไข "if" ตอนนี้โปรดดูรหัสด้านล่างสำหรับ "ไม่เท่ากัน"

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

รหัสด้านบนจะพิมพ์ "ไม่เท่ากัน" เป็น = 2 ตามที่กำหนดไว้ก่อนหน้านี้


0

มีตัวดำเนินการสองตัวใน Python สำหรับเงื่อนไข "ไม่เท่ากัน" -

a.)! = หากค่าของตัวถูกดำเนินการทั้งสองไม่เท่ากันเงื่อนไขจะกลายเป็นจริง (a! = b) เป็นจริง

b.) <> หากค่าของตัวถูกดำเนินการทั้งสองไม่เท่ากันเงื่อนไขจะกลายเป็นจริง (a <> b) เป็นจริง สิ่งนี้คล้ายกับตัวดำเนินการ! =


-3

ใช้หรือ!= <>ทั้งสองยืนไม่เท่ากัน

ตัวดำเนินการเปรียบเทียบ<>และ!=เป็นการสะกดแบบอื่นของโอเปอเรเตอร์เดียวกัน !=เป็นการสะกดที่ต้องการ; <>ล้าสมัย [อ้างอิง: การอ้างอิงภาษา Python]


2
คำตอบนี้เป็นเพียงสำเนาของ @ user128364 ที่ให้ไว้ก่อนหน้านี้
SA

-5

คุณสามารถทำได้โดยง่าย:

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

1
สิ่งที่มีค่าที่คุณจะกำหนดให้กับตัวแปรhiและbye? ไม่ว่ามันจะเป็นเช่นไรประโยค elif จะไม่สามารถเข้าถึงได้ สุดท้ายตัวอย่างนี้ไม่ได้ให้คำตอบสำหรับคำถามอย่างชัดเจน
SA
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.