J'ai donc un simple morceau de code qui affiche les entiers 1-10:
i = 0
while i < 10:
i += 1
print(i)
Ensuite, si vous modifiez un opérateur autour de la ligne 3, il affiche une quantité infinie de 1 entier (ce qui, je le comprends, explique pourquoi). Pourquoi une erreur de syntaxe ne se produit-elle pas lors de l'exécution de ce second programme? Cela n'appellerait-il pas une erreur de syntaxe dans le cas où un opérateur d'assignation serait suivi d'un opérateur d'addition ??
i = 0
while i < 10:
i =+ 1
print(i)
i+=1
est identique à i=i+1
, alors que i=+1
signifie simplement i=(+1)
.
Les marqueurs ne nécessitent généralement pas d'espaces, à moins que des ambiguïtés ne soient nécessaires (vous avez par exemple besoin d'un espace ou de signes de ponctuation entre un nom de variable et un mot-clé de langue pour que le mot-clé puisse être reconnu).
Ainsi, x=+y
, x =+ y
et x = +y
sont tous équivalents, invoquant dans tous les cas l'opérateur unaire +
sur y
et attribuant à x
. L'opérateur unaire plus n'est pas couramment utilisé, mais le fait qu'il soit rare ne signifie pas qu'il n'est ni reconnu ni accepté.
À titre de comparaison, l'opérateur -->
"en C/C++, etc." est un autre exemple dans lequel les humains recherchant des espaces et les générateurs de jetons les ignorant sont source de confusion .
i =+ 1
est identique à i = +1
ou i = 1
.
x=+1
est traité comme: x=(+1)
while x+=1
est traité comme suit: x=x+1
Il existe des opérateurs binaires qui opèrent sur leur opérande à gauche et leur opérande à droite (par exemple, multiplication *) .
Et il existe des opérateurs unaires qui ne prennent que des opérandes de droite (par exemple ~ /! Negation) . Il existe des opérateurs qui peuvent être unaires et binaires.
Le signe plus en python peut également être utilisé comme opérateur de droite, tout comme le moins.
Docs Python:
L'opérateur unaire - (moins) donne la négation de son numérique argument.
L'opérateur unaire + (plus) donne son argument numérique inchangé.
Il n'y a pas d'erreur de syntaxe car l'expression i =+ 1
est identique à i = (+1)
et +1
est parfaitement légitime. C'est un opérateur unaire, pas l'opérateur d'addition.