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:

A continuación, aprendamos los operadores de Python uno por uno.


Operadores aritméticos de Python

Supongamos las siguientes variables: a=10,b=20:

OperadorDescripciónEjemplo
+Suma - suma dos objetosa + b da como resultado 30
-Resta - obtiene un número negativo o resta un número de otroa - b da como resultado -10
*Multiplicación - multiplica dos números o devuelve una cadena repetida varias vecesa * b da como resultado 200
/División - divide x entre yb / a da como resultado 2
%Módulo - devuelve el resto de la divisiónb % a da como resultado 0
**Potencia - devuelve x elevado a la potencia ya**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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 c = a + b print "1 - el valor de c es:", c c = a - b print "2 - el valor de c es:", c c = a * b print "3 - el valor de c es:", c c = a / b print "4 - el valor de c es:", c c = a % b print "5 - el valor de c es:", c # Modifica las variables a, b, c a = 2 b = 3 c = a**b print "6 - el valor de c es:", c a = 10 b = 5 c = a//b print "7 - el valor de c es:", c

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:

OperadorDescripciónEjemplo
==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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 if a == b : print "1 - a es igual a b" else: print "1 - a no es igual a b" if a != b : print "2 - a no es igual a b" else: print "2 - a es igual a b" if a <> b : print "3 - a no es igual a b" else: print "3 - a es igual a b" if a < b : print "4 - a es menor que b" else: print "4 - a es mayor o igual que b" if a > b : print "5 - a es mayor que b" else: print "5 - a es menor o igual que b" # Modifica los valores de las variables a y b a = 5 b = 20 if a <= b : print "6 - a es menor o igual que b" else: print "6 - a es mayor que b" if b >= a : print "7 - b es mayor o igual que a" else: print "7 - b es menor que a"

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:

OperadorDescripciónEjemplo
=Operador de asignación simplec = a + b asigna el resultado de a + b a c
+=Operador de asignación de sumac += a es equivalente a c = c + a
-=Operador de asignación de restac -= a es equivalente a c = c - a
*=Operador de asignación de multiplicaciónc *= a es equivalente a c = c * a
/=Operador de asignación de divisiónc /= a es equivalente a c = c / a
%=Operador de asignación de móduloc %= a es equivalente a c = c % a
**=Operador de asignación de potenciac **= a es equivalente a c = c ** a
//=Operador de asignación de división enterac //= 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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 c = a + b print "1 - el valor de c es:", c c += a print "2 - el valor de c es:", c c *= a print "3 - el valor de c es:", c c /= a print "4 - el valor de c es:", c c = 2 c %= a print "5 - el valor de c es:", c c **= a print "6 - el valor de c es:", c c //= a print "7 - el valor de c es:", c

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
OperadorDescripciónEjemplo
&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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "1 - El valor de c es:", c c = a | b; # 61 = 0011 1101 print "2 - El valor de c es:", c c = a ^ b; # 49 = 0011 0001 print "3 - El valor de c es:", c c = ~a; # -61 = 1100 0011 print "4 - El valor de c es:", c c = a << 2; # 240 = 1111 0000 print "5 - El valor de c es:", c c = a >> 2; # 15 = 0000 1111 print "6 - El valor de c es:", c

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:

OperadorExpresión lógicaDescripciónEjemplo
andx 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.
orx 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.
notnot 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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 if a and b : print "1 - Las variables a y b son ambas True" else: print "1 - Una de las variables a y b no es True" if a or b : print "2 - Las variables a y b son ambas True, o una de ellas es True" else: print "2 - Ni las variables a y b son True" # Modificar el valor de la variable a a = 0 if a and b : print "3 - Las variables a y b son ambas True" else: print "3 - Una de las variables a y b no es True" if a or b : print "4 - Las variables a y b son ambas True, o una de ellas es True" else: print "4 - Ni las variables a y b son True" if not( a and b ): print "5 - Las variables a y b son ambas False, o una de ellas es False" else: print "5 - Las variables a y b son ambas True"

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.

OperadorDescripciónEjemplo
inDevuelve 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 inDevuelve 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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "1 - La variable a está en la lista dada list" else: print "1 - La variable a no está en la lista dada list" if ( b not in list ): print "2 - La variable b no está en la lista dada list" else: print "2 - La variable b está en la lista dada list" # Modificar el valor de la variable a a = 2 if ( a in list ): print "3 - La variable a está en la lista dada list" else: print "3 - La variable a no está en la lista dada list"

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.

OperadorDescripciónEjemplo
isis 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 notis 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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 20 b = 20 if ( a is b ): print "1 - a y b tienen la misma identidad" else: print "1 - a y b no tienen la misma identidad" if ( a is not b ): print "2 - a y b no tienen la misma identidad" else: print "2 - a y b tienen la misma identidad" # Modificar el valor de la variable b b = 30 if ( a is b ): print "3 - a y b tienen la misma identidad" else: print "3 - a y b no tienen la misma identidad" if ( a is not b ): print "4 - a y b no tienen la misma identidad" else: print "4 - a y b tienen la misma identidad"

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:

OperadorDescripció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+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 20 b = 10 c = 15 d = 5 e = 0 e = (a + b) * c / d #( 30 * 15 ) / 5 print "El resultado de la operación (a + b) * c / d es:", e e = ((a + b) * c) / d # (30 * 15 ) / 5 print "El resultado de la operación ((a + b) * c) / d es:", e e = (a + b) * (c / d); # (30) * (15/5) print "El resultado de la operación (a + b) * (c / d) es:", e e = a + (b * c) / d; # 20 + (150/5) print "El resultado de la operación a + (b * c) / d es:", e

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 运算结果为: 50
Otras extensiones