En este nuevo programando en Python vamos a ver cómo es la declaración de variables, el manejo de conversiones, signos, orden de los mismos y algunas cosas que Python y solo Python es capaz de hacer.
Tipos básicos en Python
* Los números pueden ser enteros (5), flotantes (5,123) o complejos (7 + 5j).
* Pueden ser cadenas de texto, como "hola mundo" (el tipo de comillas es indistinto, pueden ser la doble " o la simple ').
* Valores booleanos, True o False.
Nota: Los comentarios se escriben con el numeral (o shapr #)
Para crear una variable con un valor tenemos que hacerlo de la siguiente manera:
<?
# Vamos a crear un numero entero:
numero_entero = 45
#Tambien podemos hacer una cadena
cadena = 'hola gente'
#Si estamos en la consola que les mostré al principio del post anterior, podemos tipear y ver de que tipo son
type(cadena)
>
Para los números enteros, estos son positivos o negativos, los que no tienen decimales, pueden guardar un número grande, pero si necesitamos que el número guardado se MUY grande (casos excepcionales, no los usen a menos que los necesiten por que ocupa memoria), para hacerlos tienen que agregar una "L" detrás del valor que le agregan a la variable.
<?
entero = 56L
#La "L" es lo que le dice a Python que guarde un cacho mas de memoria para que entre un número grande.
>
También se pueden expresar enteros en octales o hexagecimales, en el primero directamente poniéndo un 0 delante, en el segundo un 0x y el número.
O sea, 027 es 23 en octal, o 0x17 es en hexagecimal.
Para los números reales, aquellos que son los que tienen decimales, simplemente se tiene que poner el dato fraccionado y lo toma como tal. O sea como un float.
<?
real = 1.5
#Aunque tambien se puede usar la potencia para que te devuelva un número fraccionado del tipo float
real = 3e-2 # La "e" es de "exponente" y es el número con el que se eleva otro número. O sea, sería esto 3 elevado a la -2
>
Los números complejos son los que tienen una parte imaginaria, o sea, estos números son una extensión de los números reales, pero son de índole imaginaria, o sea, no vas a tener un resultado concreto, dentro de la mecánica de este dato, se almacena en C dos números double, uno para la parte real y otra para la imaginaria.
Se escribe de la siguiente manera:
<?
complejo = 3.1 + 6.7j
#Y devuelve (3.1 + 6.7j)
>
Operadores
Estos son los signos que generan una acción con los números, son los típicos +,-,*,/ (mas, menos, multiplicación y división)
Pero para las matemáticas tenemos otros muchos mas.
| + | Suma | r = 3 + 5 # r es 8
| - | Resta | r = 5 - 3 # r es 2
| - | Negativo | r = -5 #r es -5
| * | Multiplicación | r = 5 * 3 #r es 15
| ** | Exponente | r = 5**3 #r es 125
| / | División | r = 5.0 / 3 #r es 1,66667
| // | División Entera | r = 5//3 #r es 1
| %| Módulo | r = 7 % 2 #r es 1
Si cualquiera de los números es del tipo float (o sea, con coma), el resultado será en float.
Por ejemplo, si hago 3 * 5.1 el resultado 15.3
Hay dos clases de exponente, uno como potencia del número que se tenga como exponente, y otro como potencia de 10, que siempre devuelve un float.
Y otro número que puede devolver un float siempre y cuando el exponente no sea negativo o la base no sea una fracción.
#Potencia como potencia de 10:
var = 0.4e3 #var tiene el valor 400.0
#Potencia:
var = 0.4**3 #var tiene el valor 0.064
Respecto a la división entera, si yo tengo un número con coma y divido de esta forma el resultado sería entero.
6.67//2=3
Conversiones
Python tiene funciones básicas que generan tipos de datos o permiten transformaciones.
Para pasar de un entero o una cadena de caracteres con un número en ella y queremos convertirla a un número quebrado, la función es float()
Del mismo modo para un número entero: int()
O para pasarlo a una cadena todo lo anterior: str()
Manejo básico de cadenas de caracteres
Una cadena de caracteres funciona como un vector de letras, o sea, un vector es un tipo de datos que funciona como una cajonera para meter otro montón de datos dentro.
Por ejemplo si queremos guardar la palabra "hola", en el cajón 0 estará la "h", en el 1 la "o", etc.
Con la ubicación de cada caracter podemos manejar una cadena como se nos plazca.
<?
cadena = 'hola'
print cadena[0] #el resultado es h
#Si quiero modificar la h por la c, entonces hacemos
cadena = cadena.replace('h', 'c', 1)
>
Ojo con el número final de la función replace, determina la posición donde está el caracter o palabra. Esta función puede modificar palabras completas. También se acepta sin el número final de la función. Si no lo tiene reemplaza todos los caracteres o palabras
<?
var = 'buenos dias dias dias'
var = var.replace('o', 'a') #el resultado de esto es "buenas dias dias dias"
var.replace('dias', 'noches') #el resultado de esto es "buenas noches noches noches"
>
Pero también podemos jugar un poco con la posición de lo que nos devuelve la cadena:
<?
x = "Hello World!" #El resultado es 'llo World!'
x[:2] #El resultado es 'He'
x[:-2] #El resultado es 'Hello Worl'
x[-2:] #El resultado es 'd!'
>
Si en el vector ponen - y algún número, comienza a contar de atrás para adelante en el vector.
Los dos puntos determinan desde donde o hasta donde se quiere cierto resultado.
La concatenación:
<?
var = 'hola' + ' ' + 'mundo'
>
El signo "+" para las variables de string significa que puedo unir varias cadenas en una sola. funciona con las variables también: var = var1 + var2
A una cadena también la podemos multiplicar:
<?
a = 'hola'
b = a * 3
#b es 'holaholahola'
>
Operadores lógicos
Son texto que funcionan como si fueran argumentos lógicos que devuelven un resultado True o False.
Estos operadores funcionan igual que una pregunta, por ejemplo "¿a y b son iguales?" si = True, no = False
and es un "y" y determina que si a and b son ciertos, entonces el argumento es True.
or es un "o" lógico, determina que si uno o el otro es verdadero, entonces es True
not es un negador, un "no" delante de algo, por lo tanto si a es True y le pongo not a, entonces es False.
in es un operador que determina si algo está dentro de otro. a in b, "¿a está dentro de b?" (esto funciona muy bien con cadenas de caracteres).
Hay también otros valores booleanos que son de resultado, o sea, que generan frases lógicas que dan como resultado True o False.
== este es un operador de igualdad, la pregunta es si un resultado o valor es igual a otro. a == b "¿a es igual a b?"
!= este es un operador de distinción, o "distinto qué" a != b "¿a es distinto que b?"
< menor que, a < b "¿a es menor que b?"
> mayor que, a > b "¿a es mayor que b?"
<= menor o igual, a <= b "¿a es menor o igual a b?"
>= mayor o igual, a >= b "¿a es menor o igual a b?"
Cuando se tengan que hacer comparaciones, estos operadores van a ser muy útiles.
Por último, dejo algunos ejemplos mas de conversiones:
<?
palabra = '0.3'
quebrado = float(palabra)
entero = int(palabra)
numero_largo = long(palabra)
palabra1 = str(entero)
>