Python3 Operadores
¿Qué es un operador?
Este capítulo explica principalmente los operadores de Python.
Pon un ejemplo sencillo:
4 + 5 = 9
En el ejemplo,4y5se llamaoperando,+se llamaoperador。
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 uno por uno los operadores de Python.
Operadores aritméticos de Python
A continuación, supongamos que la variablea=10, variableb=21:
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma - suma dos objetos | a + b da como resultado 31 |
| - | Resta - obtiene un número negativo o resta un número de otro | a - b da como resultado -11 |
| * | Multiplicación - multiplica dos números o devuelve una cadena repetida un cierto número de veces | a * b da como resultado 210 |
| / | División - x dividido entre y | b / a da como resultado 2.1 |
| % | Módulo - devuelve el resto de la división | b % a da como resultado 1 |
| ** | Potencia - devuelve x elevado a la potencia y | a**b es 10 elevado a 21 |
| // | División entera - redondea hacia abajo al entero menor |
>>> 9//2 4 >>> -9//2 -5 |
El siguiente ejemplo demuestra las operaciones de todos los operadores aritméticos de Python:
Ejemplo (Python 3.0+)
El resultado del ejemplo anterior es:
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2.1 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
Operadores de comparación de Python
Supongamos 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. |
| != | Distinto de - compara si dos objetos no son iguales | (a != b) devuelve True. |
| > | 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. Nótese que estos nombres de variables están en mayúsculas. | (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 3.0+)
El resultado del ejemplo anterior es:
1 - a 不等于 b 2 - a 不等于 b 3 - a 大于等于 b 4 - a 大于 b 5 - a 小于等于 b 6 - b 大于等于 a
Operadores de asignación de Python
Supongamos 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 con suma | c += a equivale a c = c + a |
| -= | Operador de asignación con resta | c -= a equivale a c = c - a |
| *= | Operador de asignación con multiplicación | c *= a equivale a c = c * a |
| /= | Operador de asignación con división | c /= a equivale a c = c / a |
| %= | Operador de asignación con módulo | c %= a equivale a c = c % a |
| **= | Operador de asignación con potencia | c **= a equivale a c = c ** a |
| //= | Operador de asignación con división entera | c //= a equivale a c = c // a |
| := | Operador morsa (walrus), el propósito principal de este operador es realizar una asignación y devolver el valor asignado al mismo tiempo en una expresión.Operador nuevo en la versión Python 3.8。 | En este ejemplo, la expresión de asignación evita llamar a len() dos veces: if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
|
El siguiente ejemplo demuestra las operaciones de todos los operadores de asignación de Python:
Ejemplo (Python 3.0+)
El resultado del ejemplo anterior es:
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52.0 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
En Python 3.8 y versiones posteriores, se introdujo una nueva característica de sintaxis llamada "operador morsa" (Walrus Operator), que usa:=símbolo. El propósito principal de este operador es realizar una asignación y devolver el valor asignado al mismo tiempo en una expresión.
Usar el operador morsa puede simplificar el código en algunos casos, especialmente cuando se necesita utilizar el resultado de una asignación dentro de una expresión. Esto es útil para simplificar las condiciones de bucle o los cálculos repetidos en expresiones.
A continuación se muestra un ejemplo sencillo que demuestra el uso del operador morsa:
Ejemplo
n = 10
if n > 5:
print(n)
# Usando el operador morsa
if (n := 10) > 5:
print(n)
if (n := 10) > 5:: Esto es usando el operador morsa (:=). El operador morsa realiza una asignación dentro de una expresión.(n := 10): Asigna la variablenasignándola a 10, y devuelve el resultado de esta asignación.> 5: Comprueba si después de la asignaciónnes mayor que 5. Si la condición es verdadera, se ejecuta el siguiente bloque de código.
print(n): Si la condición es verdadera, imprime el valor de la variablen(es decir, 10).
Ventajas del operador morsa:
- El operador morsa (
:=) permite realizar asignaciones dentro de expresiones, lo que puede reducir la repetición de código y mejorar la legibilidad y concisión del código. - En el ejemplo anterior, la escritura tradicional necesita una línea separada para asignar
n, y luegoifrealizar la comprobación de la condición en la sentencia. Sin embargo, la escritura con el operador morsa puedeifrealizar la asignación y la comprobación de la condición directamente en la sentencia.
Operadores de bits de Python
Los operadores de bits tratan los números como binarios para realizar cálculos. Las reglas de las operaciones de bits en Python son las siguientes:
En la siguiente tabla, la variable a es 60 y b es 13. El 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 Y bit a bit: 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, explicación binaria: 0000 1100 |
| | | Operador O bit a bit: si al menos uno de los dos bits correspondientes es 1, el bit de resultado es 1. | (a | b) da como resultado 61, explicación binaria: 0011 1101 |
| ^ | Operador O exclusivo (XOR) bit a bit: cuando los dos bits correspondientes son diferentes, el resultado es 1. | (a ^ b) da como resultado 49, explicación binaria: 0011 0001 |
| ~ | Operador de complemento bit a bit: invierte cada bit binario de los datos, es decir, convierte 1 en 0 y 0 en 1.~x, similar-x-1 | (~a) da como resultado -61, explicación binaria: 1100 0011, en forma de complemento a dos de un número binario con signo. |
| << | Operador de desplazamiento a la izquierda: desplaza todos los bits binarios del operando a la izquierda un cierto número de posiciones; el número a la derecha de "<<" especifica la cantidad de posiciones a desplazar, se descartan los bits altos y se rellenan con 0 los bits bajos. | a << 2 da como resultado 240, explicación binaria: 1111 0000 |
| >> | Operador de desplazamiento a la derecha: desplaza todos los bits binarios del operando a la izquierda de ">>" a la derecha un cierto número de posiciones; el número a la derecha de ">>" especifica la cantidad 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 bit a bit de Python:
Ejemplo (Python 3.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
El lenguaje 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 el valor de x; de lo contrario, devuelve el valor calculado de y. | (a and b) devuelve 20. |
| or | x or y | "O" booleano: si x es True, devuelve el valor 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 3.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 algunos de los operadores anteriores, Python también admite operadores de pertenencia, que comprueban si una instancia contiene un miembro de una secuencia, 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 está 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 3.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 se utiliza para determinar si dos identificadores hacen referencia al mismo objeto. | x is y, similarid(x) == id(y), si hacen referencia al mismo objeto, devuelve True; de lo contrario, devuelve False. |
| is not | is not se utiliza para determinar si dos identificadores hacen referencia a objetos diferentes. | x is not y, similarid(x) != id(y). 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 3.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 los objetos referenciados por dos variables son el mismo; == 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 en Python
La siguiente tabla enumera todos los operadores de mayor a menor precedencia. Los operadores en la misma celda tienen la misma precedencia. Todos los operadores se refieren a operaciones binarias, a menos que se indique lo contrario. Los operadores en la misma celda se agrupan de izquierda a derecha (excepto la exponenciación, que se agrupa de derecha a izquierda):
Operador |
Descripción |
|---|---|
|
Expresión entre paréntesis |
|
Indexación, segmentación, llamada, referencia a atributo |
await x |
Expresión await |
|
Potenciación (exponente) |
|
Positivo, negativo, NOT bit a bit |
|
Multiplicación, multiplicación de matrices, división, división entera, módulo |
|
Suma y resta |
|
Desplazamiento de bits |
|
AND bit a bit |
|
XOR bit a bit |
|
OR bit a bit |
|
Operaciones de comparación, incluidas las pruebas de pertenencia y las pruebas de identidad |
|
NOT lógico |
|
AND lógico |
|
OR lógico |
|
Expresión condicional |
|
Expresión lambda |
|
Expresión de asignación |
El siguiente ejemplo demuestra el funcionamiento de la precedencia de todos los operadores de Python:
Ejemplo (Python 3.0+)
El resultado del ejemplo anterior es:
(a + b) * c / d 运算结果为: 90.0 ((a + b) * c) / d 运算结果为: 90.0 (a + b) * (c / d) 运算结果为: 90.0 a + (b * c) / d 运算结果为: 50.0
and tiene mayor precedencia:
Ejemplo
En el ejemplo anterior, primero se evalúay and zy devuelve False, luegox or Falsedevuelve True, el resultado es:
情况1:默认优先级(先算and) yes 情况2:强制改变优先级(先算or) no
Otras extensionesNota:Python3 ya no admite<>el operador, se puede usar!=en su lugar, si realmente necesitas usar este operador de comparación, puedes hacerlo de la siguiente manera:
>>> from __future__ import barry_as_FLUFL >>> 1 <> 2 True