การใช้ตัวดำเนินการ tilde ใน Python คืออะไร
สิ่งหนึ่งที่ฉันคิดได้คือทำบางสิ่งในทั้งสองด้านของสตริงหรือรายการเช่นตรวจสอบว่าสตริงเป็น palindromic หรือไม่:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
การใช้งานที่ดีอื่น ๆ
-False==0
) มันสับสนเพราะคุณกำลังพูดถึง~
และ~False == -1
ที่ไม่ได้เป็นเท็จ
__neg__
) อาจเป็นไปได้ว่าฉันควรใช้อย่างต่อเนื่องTrue
เช่น-True == -1
ซึ่งไม่ใช่ -2 หรือFalse
หรือเท็จซึ่งเชื่อมโยงกลับไปยัง~True
ผลลัพธ์อย่างชัดเจนยิ่งขึ้นและการลบล้างเลขคณิตของ a bool
นั้นแตกต่างจากการปฏิเสธเชิงตรรกะ ฉันไม่ได้พยายามที่จะลึก ฉันเพิ่งจะเน้นการดำเนินงาน 3 ครั้งและวิธีการพิเศษที่บางครั้งอาจทำให้สับสน
~
นำมาใช้โดยวิธีพิเศษ__invert__
นั้นไม่เกี่ยวข้องกับตัวnot
ดำเนินการซึ่งจะลบล้างค่าที่ส่งคืนโดย__bool__
(หรือ__nonzero__
ใน 2.x) ตามหลักเหตุผล นอกจากนี้ยังเป็นที่ไม่เกี่ยวข้องกับผู้ประกอบการปฏิเสธเอกดำเนินการโดย-
__neg__
ตัวอย่างเช่น~True == -2
ซึ่งไม่ใช่False
หรือเท็จและ-False == 0
ซึ่งยังคงเป็นเท็จ