sábado, 22 de octubre de 2011

Aprendiendo Python: Cadenas.

Son nativas al lenguaje porque forman parte de él. El tipo para trabajar con cadenas es string, no hay tipo char a diferencia de otros lenguajes.

Python es muy potente en el manejo de cadenas. Veamos algunas características interesantes.

Las cadenas se pueden trocear (slicing). Ejemplo:
>>>cadena = "Martes 13"
>>>print cadena[0:5]
Martes
>>>print cadena[7:]
13

Si son largas, se encierran entre tres comillas. Ejemplo:
>>>cadena = """una cadena más larga que
supercalifragilisticoespialidoso"""

Se pueden utilizar escapes (\n, \t, etc.) así como no interpretarlos. En este último caso las cadenas se denominan cadenas crudas. Ejemplo:
>>>print "\t Hola mundo"
     Hola mundo
>>>print r"\t Hola mundo"
\t Hola mundo

Para comparar cadenas se utilizan los operadores =, <, >, <=, >= y !=. También podemos concatenar y multiplicar cadenas. Ejemplo:
>>>cadena1 = "hola"
>>>cadena2 = " caracola"
>>>print cadena1 + cadena2
hola caracola
>>>print cadena1 * 3
holaholahola

Algunas funciones ya implementadas son:
Conversión a mayúsculas:
>>>cadena = "mayúsculas".upper()
>>>print cadena
MAYÚSCULAS
Conversión a minúsculas:
>>>cadena = "Minúsculas".lower()
>>>print cadena
minúsculas
Máximo de una cadena:
>>>maximo = max("abcde")
>>>print maximo
e
Mínimo de una cadena:
>>>minimo = min("abcde")
>>>print minimo
a
Saber si una parte está contenida en la cadena:
>>>"a" in "juan"
True
Saber si una parte no está contenida en la cadena:
>>>"a" not in "juan"
False

Además podemos importar el módulo string y utilizar todas sus funciones.
>>>import string

Al igual que los números, las cadenas son inmutables. No se pueden cambiar pero se pueden reasignar.

Por último, recordar que cualquier cadena no vacía es True
>>>bool("cadena")
True
y que una cadena vacía es False
>>>bool("")
False     

Aprendiendo Python: Números.

Para manipular números, Python soporta los tipos entero, float y complejo. El tipo float es de doble precisión por lo que sustituye al tipo double de otros lenguajes como C.

Los operadores que podemos utilizar son:
  • Operadores aritméticos: +, -, *, /, ** (para la potencia) y % (para el resto de la división).
  • Operadores de comparación: <, >, <=, >=, ==, !=.
  • Operadores lógicos: and, or, not.

La precedencia de operaciones es la habitual: paréntesis, potencias, multiplicación/división y suma/resta.

Es posible realizar incrementos con los mismos operadores de C (+=, -=, *=, /=). Por ejemplo:
a += 5
a -= 2
Sin embargo, no existen las operaciones incremento y desincremento en uno ++ y --.

En cuanto al tipo bool, cualquier entero distinto a cero es True y el número 0 es False (además de las listas, tuplas, cadenas, etc. que estén vacías).

En Python todo son objetos, por lo que para conocer de qué tipo es un objeto utilizamos la función type(...).

Hay que destacar que en Python los objetos número son inmutables, es decir, no se pueden cambiar. Como curiosidad veremos lo fácil que es hacer un intercambio de objetos (swap) en Python:
a = 1, b = 2, c = 3
a, b = b, a 
En la primera línea asignamos un valor a cada objeto. En la segunda, cambiamos el valor usando tuplas. Ahora a = 2 y b = 1.


martes, 4 de octubre de 2011

Libro de Python y herramientas de estilo

Hola a todos!

He encontrado un libro que nos puede resultar de mucha ayuda acerca de python, ya que es un manual de referencia muy completo, con ejemplos y en español. El autor es Raúl González Duque y el libro está bajo licencia Creative Commons. Aquí os dejo los enlaces:
- Megaupload
- Web oficial

También os dejo una aplicación que resulta de mucha ayuda cuando trabajamos con proyectos en Python. Dado que es un lenguaje interpretado, a veces no sabemos si el código funcionará hasta ejecutar todo el código de nuestro programa, lo cual puede resultar tedioso cuando trabajamos en proyectos medianamente grandes. Se trata de Pylint, una herramienta que comprueba que el código sea correcto en cuanto a sintaxis. Y no solo eso, también comprueba que la escritura del código se ajuste al estándar de Python puntuando tu estilo del 1 al 10 (descrito en la guía de estilo PEP-8). [Página oficial de Pylint]
Los usuarios de Unix podéis instalarlo con el siguiente comando: sudo apt-get install pylint