Me ajuda a entender esta fuçada em Python ?

Pessoal, sou aluno do 1º período e neste carnaval aproveitei para fuçar/adiantar conteúdo da matéria de programação. Cheguei na parte de operadores lógicos/lógica de programação e algo despertou minha curiosidade, foi então que não entendi o que o interpretador python está fazendo. Segue:
chamei x = True e y = False fiz alguns teste com a tabela verdade com a sintaxe x or y, x and y para ver o que me retornava. Aí inventei de colocar como escrevemos no papel para ver qual erro me retornava, por exemplo isto: ~x e o incrível(para mim,claro kkk) ele me retornou o valor de -2. Aí eu dei um Type(~x) e fiquei incrédulo porque me retornou um “int” e não bool. Da mesma forma eu fiz com o y (~y) que me retornou -1.
Foi aí que corri para https://wiki.python.org e me deparo com isto " ~ x Returns the complement of x the number you get by switching each 1 for a 0 and each 0 for a 1. This is the same as -x - 1."
Agora eu fico: como assim é a mesma coisa que -x - 1 ? ( se é que o meu inglês não me traiu? kkk)
Fico extremamente agradecido se alguém me ajudar a entender acho que levar isto para sala o professor não vai me dar muita bola, e carregar esta dúvida é péssimo kkkk. Valeu!!! \o/

@benorio, As linguagens de programação tem operadores lógicos pré-definidos por padrão no caso de JAVA && equivale a conjunção e, || equivale a disjunção ou, e ! equivale ao negação(não ou not no inglês), no caso se você usar o operador como “-” o compilador ou interpretador entenderá como o valor negativo ou como uma operação e não como uma negação. Se você quer saber qual o valor da tabela de negação use o operador lógico not definido na linguagem PYTHON.

OBS: Você está lidando com um máquina ela entende uma linguagem diferente da sua, o que os compiladores fazem é essa tradução da sua linguagem de programação para linguagem de máquina. Então alguns operadores serão diferentes dependendo da linguagem de programação que você está usando. Por isso se você quer saber o valor boolean de algo use os operadores lógicos da Linguagem e não como você provavelmente vai escrever no seu caderno.

Exemplo
Linguagem natural
~ x - Negação de X
Linguagem de Programação
not x - Negação de X em PYTHON.
!x - Negação de X em JAVA.
Na linguagem de máquina ela só entenderá como 0 e 1, sendo o valor 0 falso e 1 verdadeiro ou 0 desligado e 1 ligado, com a notação do livro que você preferir ou estiver utilizando.

Dá uma olhada em Complemento de 2, https://pt.wikipedia.org/wiki/Complemento_para_dois

É basicamente para representar um número negativo,
‘0000 0001’ => 1
se você inverter fica
‘1111 1110’ que é a representação de -2

O ~x virou -2 porque Python considerou True = 1
Faça o teste no python
a=True
b=1
a==b => Vai retornar True
a+15 => 16

@celioyutaka, Obrigado, eu entendi errado a dúvida do @benorio, é por que o operador que ele está usando é um operador binário que troca todos os valores 0 por 1 e todos os 1 por 0.

@saulo1 Muito obrigado em dispor do seu tempo e palavras. Dei uma lida nos operadores lógicos os quais você citou e vi seu funcionamento aqui testando no interpretador(principalmente o not x). Realmente a dúvida maior foi sobre como o interpretador tirou aquele -2(rsrsrsr) e o colega @celioyutaka complementou. Vlw brothers !

@celioyutaka Obrigado, eu tava pensando nessa possibilidade mas não tinha 100% de certeza. Esclareceu bastante, pra finalizar este tópico e abusar um pouco do colega,e seguindo a lógica quando eu digo que y = False ( posso considerar que false é igual a zero,né isso?) e quando peço para retornar ~y ele me retorna -1 porque o complemento de dois do número zero é justamente o -1(inverso), né isso ?! como abaixo :
|-1|1111|
|0|0000|

Eu não uso muito python, mas pelos testes o python considera False como 0(Zero) mesmo.
a=False
b=0
a==b
retornou => True

a+9
retornou => 9

a*56324
retornou => 0

Quanto ao ~y, isso mesmo, se quiser pode fazer na calculadora do Windows,
Deixa no modo Programador;
Mude de QWORD para Byte
Coloque algum valor e clique no botão Not

Valeu,obrigado !!!