Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah yang dilakukan oleh Operator Tilde (~) dalam Python?

Apakah yang dilakukan oleh Operator Tilde (~) dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 11:09:10678semak imbas

What Does the Tilde (~) Operator Do in Python?

Memahami Operator Tilde Python

Operator tilde (~) dalam Python ialah operator unary yang digunakan untuk songsangan bitwise atau penolakan. Ia beroperasi pada integer dan mengembalikan pelengkap bit input.

Penggunaan untuk Integer

Apabila digunakan pada integer, operator tilde membalikkan semua bit dua- melengkapkan perwakilan integer. Hasilnya ditafsirkan sekali lagi sebagai integer pelengkap dua. Ini menjadikan ~x bersamaan dengan (-x) - 1.

Contohnya:

>>> ~5
-6

Menggunakan Inversi untuk Kelas Tersuai

Yang diperbaharui bentuk operator ~ ialah operator.invert. Kelas boleh menyokong operator ini dengan melaksanakan kaedah __invert__(self).

Contohnya:

import operator

class Foo:
    def __invert__(self):
        print('invert')

x = Foo()
operator.invert(x)  # Prints 'invert'
~x  # Also prints 'invert'

Operator ini boleh berguna untuk kelas yang masuk akal untuk mempunyai "pelengkap" atau "terbalikan" bagi suatu tika yang juga suatu tika daripada kelas yang sama.

Tambahan Menggunakan

Melangkaui penyongsangan integer, pengendali tilde kadangkala digunakan dalam kombinasi dengan penghirisan rentetan untuk melaksanakan tugas pada kedua-dua belah rentetan atau senarai. Sebagai contoh, ia boleh digunakan untuk menyemak sama ada rentetan adalah palindromik:

def is_palindromic(s):
    return all(s[i] == s[~i] for i in range(len(s) // 2))

Secara keseluruhan, pengendali tilde ialah alat serba boleh yang boleh digunakan untuk penyongsangan bitwise dan penyongsangan kelas tersuai dalam Python.

Atas ialah kandungan terperinci Apakah yang dilakukan oleh Operator Tilde (~) dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn