Hay tres diferentes tipos numéricos: enteros, reales y complejos. Todos ellos soportan los operadores algebraicos + (suma), - (resta), * (multiplicación), / (división) y ** (potencia), así como las asignaciones de signo +x y -x (la primera simplemente mantiene el signo de x, la segunda cambia su signo). La función pow(x, y) -que calcula el resultado de xy- también se puede usar con los tres tipos.
A partir de aquí hay ciertas diferencias entre ellos:
Números enteros y reales
Estos tipos aceptan también los operadores // y % (recordemos que el primero devuelve el entero más próximo a la división que sea inferior o igual al resultado, y que el segundo devuelve el resto de la división).
En Python 3 no hay valores máximos ni mínimos para los números enteros, dependiendo estos límites de la configuración del ordenador que esté usando.
Algunas funciones disponibles:
- int(x): convierte la variable x en número entero
- float(x): convierte la variable x en número real
Por otro lado, toda expresión en la que haya involucrado un número real va a devolver un número real (salvo que se utilicen las anteriores funciones para modificar los tipos, por supuesto). Igualmente, una división siempre va a devolver un número real, aun cuando los números involucrados sean enteros y el resultado de la división también lo sea.
Estos tipos admiten la función abs() que calcula el valor absoluto del número.
Números complejos
Estos números se forman como a + bj o a + bJ, donde a es la parte real y b la imaginaria. La unidad imaginaria es j o J (no se puede utilizar i):
Si la parte real es cero, puede escribirse solo la parte imaginaria:
En todo caso, el número que precede a la unidad imaginaria siempre hay que escribirlo (aunque sea cero). Otra particularidad a tener en cuenta es que entre dicho número y la j no puede haber ningún espacio en blanco.
Todo número imaginario tiene dos atributos que nos permiten acceder a su parte real e imaginaria: real y imag:
Este tipo de datos también acepta la función abs, pero ésta devuelve el módulo del número real: