Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Que fait l'opérateur |

+2 votes

Je viens d'essayer plusieurs manipulation avec des entiers et l'opérateur | (barre verticale) mais je ne parviens pas à comprendre ce qu'il fait.

>>> 2|3
3
>>> 3|4
7
>>> 4|5
5
>>> 5|6
7
>>> 7|8
15
>>>12|15
15
>>> 50|15
63
demandé 8-Jan-2016 par simplexité

2 Réponses

+4 votes

Il s'agit de l'opérateur binaire "ou". Pour voir son effet, il est bon d'utiliser la représentation en base 2:

>>> print(bin(12), bin(15), bin(12|15))
0b1100 0b1111 0b1111

Pour le "et" binaire, on utilise "&":

>>> print(bin(12), bin(15), bin(12&15))
0b1100 0b1111 0b1100

Chaque 0 et chaque 1 de la représentation binaire représente un "vrai" et un "faux". On applique un "et" ou un "ou" sur les 0 et 1 à la même place.

répondu 8-Jan-2016 par Sam (4,974 points)

Le lien vers la doc

Opérateur binaire 'ou', pour quelle situtation?
+1 vote

Pour comprendre ce que fait 2|3, il faut commencer par convertir chaque valeur actuellement en base decimale, en valeur binaire. 2 en binaire devient 10, 3 en binaire devient 11.

Ensuite, le "ou" logique est une operation tel que:
1 ou 1 = 1
1 ou 0 = 1
0 ou 1 = 1
0 ou 0 = 0

Du coup, 2|3 devient 10|11, tu appliques l'operation, les unités entre elles, les dizaines entres elle.
Tu obtiens:

   10
ou 11
........
   11

11 (valeur binaire), en valeur decimal devient 3, et
donc 2|3 te donne 3

Pour mieux comprendre le tout, informe toi sur la logique, l'algebre de boole, eventuellement un peu d'electronique numerique.

répondu 8-Jan-2016 par Nsukami_ (1,976 points)
...