Kadete Moderador

Registrado: 27 Jul 2006 Mensajes: 252 Ubicación: Buenos Aires
|
Publicado: Mar Dic 19, 2006 2:07 am Asunto: Paso-Por-Paso # Lenguaje Python - 0x2 |
|
|
Para mas información: http://www.python.org
# ASIGNACION DE VARIABLES SIMULTANEAS #
Como hemos visto en el articulo anterior, para asignar variables
se utilizaba el signo =, (x = 2), pero si necesitamos asignar
a distintas variables el mismo valor Python nos permite asignarlas
simultáneamente. Ejemplo:
>>> a = b = c = d = 0
>>> a
0
>>> b
0
>>> c
0
>>> d
0
# PALABRAS RESERVADAS DE PYTHON #
Las palabras reservadas se usan en cualquier lenguaje para definir sus reglas y estructura, por esto mismo no pueden usarse como nombres de variables.
Python tiene 28 palabras reservadas:
and continue else for import not raise
assert def except from in or return
break del exec global is pass try
class elif finally if lambda print while
# SENTECIAS #
Las sentencias son instrucciones que puede ejecutar el interprete de Python. Hasta ahora vimos
print y la asignación de variables. El interprete ejecuta y muestra el resultado de la sentencia, si es que lo hay, para la sentencia print el resultado es un valor y para la asignación de
variables no entrega ningún resultado en pantalla.
Normalmente en un guión de código contiene una sentencia de sentencias. En el caso de que alla
mas de una sentencia, los resultados aparecerán de uno a uno tal como se van ejecutando las
sentencias. Ejemplo:
>>> print 10
10
>>> x = 20
>>> print x
20
# CADENAS #
Python nos permite manipular cadenas a nuestro antojo, al igual que con los números.
Se puede encerrar entre comillas simples o dobles:
Ejemplo:
>>> 'shell security'
'shell security'
>>> 'L\'shell security'
"L''shell security'"
>>> '"Si," yo?'
'"Si," yo?'
>>> "\"Si,\" yo?"
'"Si," yo?'
>>> '"En L\'Laboratorio," uso linux!'
'"En L\'Laboratorio," uso linux!'
Como las cadenas pueden ocupar varias líneas de diferente manera, python nos permite impedir que
el final de la línea física se interprete como final de línea lógica mediante una barra
invertida.
Ejemplo:
>>> saludo = "Hey! Python es multiplataforma!\n\
... No solo para OS, sino que usan python para programar software para celulares
.\n\
... Observemos que el espacio en blanco al principio de la línea es\
... significativo.\n"
>>> print saludo
Hey! Python es multiplataforma!
No solo para OS, sino que usan python para programar software para celulares.
Observemos que el espacio en blanco al principio de la línea es significativo.
También existe la posibilidad de encerrar las cadenas entre comillas triples """ o ''', esta
posibilidad es muy útil ya que no es necesario utilizar las barras invertidas porque serán
incluidas en la cadena.
Ejemplo:
>>> print """
... Uso: programa [OPCIONES]
... -h Mostrar ayuda de programa
... -n Nombre del programa
... """
Uso: programa [OPCIONES]
-h Mostrar ayuda de programa
-n Nombre del programa
# CADENAS UNICODE #
Para mas información: http://www.unicode.org
Desde las versiones de Python 2.0 en adelante, disponemos de un nuevo tipo de datos para
almacenar datos de texto: el objeto "Unicode".
La codificación de Unicode tiene la ventaja de proporcionar un ordinal para cada sistema de
escritura utilizado en textos antiguos y modernos. Anteriormente, había sólo 256 ordinales para
los caracteres escritos y se solía asociar los textos a una página de códigos, que hacía
corresponder los ordinales con los caracteres escritos. Esto llevaba a una gran confusión,
especialmente en lo relativo a la internacionalización (comúnmente escrito "i18n" -- "i" + 18
characters + "n") del software. Unicode resuelve estos problemas definiendo una página de
códigos única para todos los sistemas de escritura.
Ejemplo de como crear una cadena unicode en python:
>>> u'Esto es Unicode!'
u'Esto es Unicode!'
La "u" minúscula frente a la comilla indicara que se creara una cadena Unicode. Si deseas
incluir caracteres especiales dentro de la cadena, lo puedes hacer mediante la codificación
Unicode-Escape de Python. El siguiente ejemplo muestra cómo:
>>> u'Mi e-mail es kadete.unix\u0040gmail.com'
u'Mi e-mail es kadete.unix@gmail.com'
Nota: 0040 es ordinal hexadecimal 0x0040 (Arroba).
veremos también que los primeros 256 ordinales de unicode coinciden con la codificación
estándar Latin-1 utilizada en muchos paises.
#MODO EN BRUTO DE UNICODE#
Para esto se debe preceder la cadena con una "r" minúscula para que Python utilice la
codificación En bruto-Unicode-Escape. Sólo se aplicará la conversión citada
uXXXX si hay un número impar de barras invertidas frente a la "u".
Ejemplo:
>>> ur'"Shell\u0020Sec'
u'"ShellSec'
>>> ur'"Shell\\u0020Sec'
u'"Shell\\\\u0020Sec'
Este modo es muy util cuando necesitamos ingresar gran cantidad de barras invertidas.
Hay algo mas!,Python nos brinda un conjunto completo de modos de crear cadenas Unicode
basándose en una codificación conocida.
La función interna unicode() proporciona acceso a todos los codecs
(codificadores/descodificadores) Unicode registrados. Algunas de las codificaciones más
conocidas a las que pueden convertir estos codecs son Latin-1, ASCII, UTF-8 y UTF-16. Los
últimos dos son codificaciones de longitud variable que permiten almacenar caracteres Unicode de
8 o 16 bits.
Nota: Python usa UTF-8 como codificación por defecto.
# NUMEROS IMAGINARIOS & COMPLEJOS #
Los números imaginarios se escriben con el sufijo "j" o "J".
Los números complejos con una parte real distinta de cero se escriben "(real+imagj)", y se
pueden crear con la función "complex(real, imag)".
Ejemplo:
>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
Los números complejos siempre se representan como dos números de coma flotante, la parte real y
la imaginaria. Para extraer una de las partes de un número complejo z, usa z.real y z.imag.
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
Las funciones de conversión a coma flotante y a entero (float(), int() y long()) no funcionan
con números complejos, porque no hay un modo único y correcto de convertir un complejo a real.
Para esto usaremos abs(z) para sacar su módulo (como flotante) o z.real para sacar su parte
real.
>>> a=1.5+0.5j
>>> float(a)
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: can't convert complex to float; use e.g. abs(z)
>>> a.real
1.5
>>> abs(a)
1.58113883008
# LISTAS #
Python utiliza varios tipos de datos compuestos que se utilizan para agrupar otros valores.
El que utilizaremos será el "lista" que se puede escribir como una lista de valores separados
por comas entre corchetes.
Ejemplo:
>>> x = ['Slackware', 'Gentoo', 100, 5678]
>>> x
['Slackware', 'Gentoo', 100, 5678]
Nota: los índices de una lista como los de una cadena siempre empiezan en 0.
Podemos cortar, concatenar ,etc,etc XD
Ejemplo:
>>> x[0]
'Slackware'
>>> x[3]
5678
>>> x[-2]
100
>>> x[1:-1]
['Gentoo', 100]
>>> x[:2] + ['SuSe', 2*2]
['Slackware', 'Gentoo', 'SuSe', 4]
>>> 3*x[:3] + ['¡Python!']
['Slackware', 'Gentoo', 100, 'Slackware', 'Gentoo', 100, 'Slackware', 'Gentoo',
100, '\xadPython!']
Es posible cambiar elementos de la lista:
>>> x
['Slackware', 'Gentoo', 100, 5678]
>>> x[2] = x[2] + 23
>>> x
['Slackware', 'Gentoo', 123, 5678]
Se puede asignar a un corte, lo que puede hasta cambiar el tamaño de la lista:
# Para remplazar elementos:
>>> x[0:2] = [1, 12]
>>> x
[1, 12, 123, 5678]
# Para quitar elementos
>>> x[0:2] = []
>>> x
[123, 5678]
# Para insertar:
>>> x[1:1] = ['shellsec','python']
>>> x
[123, 'shellsec', 'python', 5678]
# Para insertar copia del mismo al principio:
>>> x[:0] = x
>>> x
[123, 'shellsec', 'python', 5678, 123, 'shellsec', 'python', 5678]
# VALORES & TIPOS #
El valor es uno de los elementos fundamentales que manipula un programa, como por ejemplo una
letra o un numero. Ejemplo: 2 es un valor, Gulbar es un valor.
Estos valores son de distintos tipos, el 2 es un valor entero (int) y GUlbar un valor de cadena,
no damos cuenta que gulbar es un valor de cadena porque esta entre comillas " ".
Para saber de que tipo es un determinado valor utilizamos el interprete de python:
>>> type("shellsec")
<type 'str'>
>>> type(17)
<type 'int'>
Nota: str es igual a string e int es igual a entero.
Los números decimales (separados por medio de un punto) son de tipo float (flotante) debido a la
representación de estos números en el formato llamado de coma flotante (floating-point).
>>> type(3.5)
<type 'float'>
En cambio si a los int y a los float lo ponemos dentro de comillas forman parte de una cadena y
dejan de ser valores int o float.
# ASIGNACION MULTIPLE #
El efecto de la nueva asignación es redirigir la variable de manera que deje de remitir al valor antiguo y empiece a remitir al valor nuevo.
linux = 1
print linux
linux = 5
print linux _________________ The secret to creativity is knowing how to hide your sourcers. -Albert Einstein |
|