Python Operadores
¿Qué es un operador?
Este capítulo explica principalmente los operadores de Python. Pongamos un ejemplo sencillo. 4 +5 = 9 .4y5se llamaoperando,+se llama operador.
El lenguaje Python admite los siguientes tipos de operadores:
- Operadores aritméticos
- Operadores de comparación (relacionales)
- Operadores de asignación
- Operadores lógicos
- Operadores de bits
- Operadores de pertenencia
- Operadores de identidad
- Precedencia de operadores
A continuación, aprendamos los operadores de Python uno por uno.
Operadores aritméticos de Python
Supongamos las siguientes variables: a=10,b=20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma - suma dos objetos | a + b da como resultado 30 |
| - | Resta - obtiene un número negativo o resta un número de otro | a - b da como resultado -10 |
| * | Multiplicación - multiplica dos números o devuelve una cadena repetida varias veces | a * b da como resultado 200 |
| / | División - divide x entre y | b / a da como resultado 2 |
| % | Módulo - devuelve el resto de la división | b % a da como resultado 0 |
| ** | Potencia - devuelve x elevado a la potencia y | a**b es 10 elevado a 20, da como resultado 100000000000000000000 |
| // | División entera - devuelve la parte entera del cociente (redondeo hacia abajo) |
>>> 9//2 4 >>> -9//2 -5 |
El siguiente ejemplo demuestra las operaciones de todos los operadores aritméticos de Python:
Ejemplo (Python 2.0+)
Ejecutar ejemplo »
El resultado del ejemplo anterior es:
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
Nota:En Python 2.x, al dividir un entero entre un entero, solo se obtiene un entero. Si se desea obtener la parte decimal, basta con cambiar uno de los números a punto flotante.
>>> 1/2 0 >>> 1.0/2 0.5 >>> 1/float(2) 0.5
Operadores de comparación de Python
A continuación se supone que la variable a es 10 y la variable b es 20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| == | Igual que - compara si los objetos son iguales | (a == b) devuelve False. |
| != | No igual que - compara si dos objetos no son iguales | (a != b) devuelve True. |
| <> | No igual que - compara si dos objetos no son iguales.Obsoleto en Python 3. | (a <> b) devuelve True. Este operador es similar a !=. |
| > | Mayor que - devuelve si x es mayor que y | (a > b) devuelve False. |
| < | Menor que - devuelve si x es menor que y. Todos los operadores de comparación devuelven 1 para verdadero y 0 para falso. Esto equivale a las variables especiales True y False, respectivamente. | (a < b) devuelve True. |
| >= | Mayor o igual que - devuelve si x es mayor o igual que y. | (a >= b) devuelve False. |
| <= | Menor o igual que - devuelve si x es menor o igual que y. | (a <= b) devuelve True. |
El siguiente ejemplo demuestra las operaciones de todos los operadores de comparación de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - a 不等于 b 2 - a 不等于 b 3 - a 不等于 b 4 - a 大于等于 b 5 - a 大于 b 6 - a 小于等于 b 7 - b 大于等于 a
Operadores de asignación de Python
A continuación se supone que la variable a es 10 y la variable b es 20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| = | Operador de asignación simple | c = a + b asigna el resultado de a + b a c |
| += | Operador de asignación de suma | c += a es equivalente a c = c + a |
| -= | Operador de asignación de resta | c -= a es equivalente a c = c - a |
| *= | Operador de asignación de multiplicación | c *= a es equivalente a c = c * a |
| /= | Operador de asignación de división | c /= a es equivalente a c = c / a |
| %= | Operador de asignación de módulo | c %= a es equivalente a c = c % a |
| **= | Operador de asignación de potencia | c **= a es equivalente a c = c ** a |
| //= | Operador de asignación de división entera | c //= a es equivalente a c = c // a |
El siguiente ejemplo demuestra las operaciones de todos los operadores de asignación de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
Operadores de bits de Python
Los operadores de bits tratan los números como binarios para realizar cálculos. Las reglas de los operadores de bits en Python son las siguientes:
En la siguiente tabla, la variable a es 60, b es 13, y su formato binario es el siguiente:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| Operador | Descripción | Ejemplo |
|---|---|---|
| & | Operador AND a nivel de bits: de los dos valores que participan en la operación, si los dos bits correspondientes son 1, el resultado de ese bit es 1; de lo contrario, es 0. | (a & b) da como resultado 12, en binario: 0000 1100 |
| | | Operador OR a nivel de bits: si al menos uno de los dos bits binarios correspondientes es 1, el bit de resultado es 1. | (a | b) da como resultado 61, en binario: 0011 1101 |
| ^ | Operador XOR a nivel de bits: cuando los dos bits binarios correspondientes son diferentes, el resultado es 1. | (a ^ b) da como resultado 49, en binario: 0011 0001 |
| ~ | Operador de complemento a nivel de bits: invierte cada bit de la representación binaria, 0 se convierte en 1 y 1 se convierte en 0.~xSimilar a-x-1 | (~a) da como resultado -61, en binario: 1100 0011 (representado en complemento a dos), en forma de complemento a dos de un número binario con signo. |
| << | Operador de desplazamiento a la izquierda: todos los bits del operando se desplazan a la izquierda un cierto número de posiciones, determinado por<<el número de la derecha especifica la cantidad de posiciones a desplazar. Los bits altos se descartan y los bits bajos se rellenan con 0. | a << 2 da como resultado 240, en binario: 1111 0000 |
| >> | Operador de desplazamiento a la derecha: desplaza todos los bits binarios del operando a la izquierda de ">>" hacia la derecha varios lugares,>>El número de la derecha especifica el número de posiciones a desplazar. | a >> 2 da como resultado 15, explicación binaria: 0000 1111 |
El siguiente ejemplo demuestra las operaciones de todos los operadores de bits de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
Operadores lógicos de Python
Python admite operadores lógicos. A continuación se supone que la variable a es 10 y b es 20:
| Operador | Expresión lógica | Descripción | Ejemplo |
|---|---|---|---|
| and | x and y | "Y" booleano: si x es False, x and y devuelve False; de lo contrario, devuelve el valor calculado de y. | (a and b) devuelve 20. |
| or | x or y | "O" booleano: si x es distinto de 0, devuelve el valor calculado de x; de lo contrario, devuelve el valor calculado de y. | (a or b) devuelve 10. |
| not | not x | "NO" booleano: si x es True, devuelve False. Si x es False, devuelve True. | not(a and b) devuelve False |
El resultado del ejemplo anterior es:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - 变量 a 和 b 都为 True 2 - 变量 a 和 b 都为 True,或其中一个变量为 True 3 - 变量 a 和 b 有一个不为 True 4 - 变量 a 和 b 都为 True,或其中一个变量为 True 5 - 变量 a 和 b 都为 False,或其中一个变量为 False
Operadores de pertenencia de Python
Además de los operadores anteriores, Python también admite operadores de pertenencia, que prueban si una instancia contiene una serie de miembros, incluyendo cadenas, listas o tuplas.
| Operador | Descripción | Ejemplo |
|---|---|---|
| in | Devuelve True si se encuentra el valor en la secuencia especificada; de lo contrario, devuelve False. | x en la secuencia y: si x está en la secuencia y, devuelve True. |
| not in | Devuelve True si no se encuentra el valor en la secuencia especificada; de lo contrario, devuelve False. | x no en la secuencia y: si x no está en la secuencia y, devuelve True. |
El siguiente ejemplo demuestra las operaciones de todos los operadores de pertenencia de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
Operadores de identidad de Python
Los operadores de identidad se utilizan para comparar las unidades de almacenamiento de dos objetos.
| Operador | Descripción | Ejemplo |
|---|---|---|
| is | is determina si dos identificadores hacen referencia al mismo objeto | x is y, similar aid(x) == id(y), si hacen referencia al mismo objeto, devuelve True; de lo contrario, devuelve False. |
| is not | is not determina si dos identificadores hacen referencia a objetos diferentes | x is not y, similar aid(a) != id(b). Si no hacen referencia al mismo objeto, devuelve True; de lo contrario, devuelve False. |
Nota: id()La función se utiliza para obtener la dirección de memoria del objeto.
El siguiente ejemplo demuestra las operaciones de todos los operadores de identidad de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
Diferencia entre is y ==:
is se utiliza para determinar si dos variables referencian al mismo objeto (el mismo espacio de memoria); == se utiliza para determinar si los valores de las variables referenciadas son iguales.
>>> a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
Precedencia de operadores de Python
La siguiente tabla enumera todos los operadores de mayor a menor prioridad:
| Operador | Descripción |
|---|---|
| ** | Exponente (prioridad más alta) |
| ~ + - | Inversión de bits, operadores unarios más y menos (los nombres de los métodos de los dos últimos son +@ y -@) |
| * / % // | Multiplicación, división, módulo y división entera |
| + - | Suma y resta |
| >> << | Operadores de desplazamiento a la derecha y a la izquierda |
| & | 'AND' de bits |
| ^ | | Operadores de bits |
| <= < > >= | Operadores de comparación |
| <> == != | Operador de igualdad |
| = %= /= //= -= += *= **= | Operadores de asignación |
| is is not | Operadores de identidad |
| in not in | Operadores de pertenencia |
| not and or | Operadores lógicos |
El siguiente ejemplo demuestra las operaciones de prioridad de todos los operadores de Python:
Ejemplo (Python 2.0+)
El resultado del ejemplo anterior es:
(a + b) * c / d 运算结果为: 90 ((a + b) * c) / d 运算结果为: 90 (a + b) * (c / d) 运算结果为: 90 a + (b * c) / d 运算结果为: 50Otras extensiones