1. Python
Compiladores e Interpretes
Hay dos tipos de programas que traducen lenguajes de alto nivel a lenguajes de bajo
nivel: intérpretes y compiladores. Un intérprete lee un programa de alto nivel y lo ejecuta, lo que significa
que lleva a cabo lo que indica el programa. Es decir, traduce el programa poco a poco, leyendo y ejecutando
cada comando.
Un compilador lee el programa y lo traduce completo antes de su ejecución. En este caso, al programa de alto
nivel se le llama código fuente, y el programa traducido es llamado código objeto o programa ejecutable.
Una vez que un programa ha sido compilado, puede ser ejecutado repetidamente sin necesidad de más
traducción.
Muchos de los lenguajes modernos usan ambos tipos de programas de traducción. Estos lenguajes se traducen
primero a un lenguaje de bajo nivel, llamado código de bytes, y después son interpretados por un programa
denominado máquina virtual. Aunque Python usa ambos tipos de programas de traducción, usualmente se le
considera un lenguaje interpretado debido a la manera en que los programadores interactúan con él.
Existen dos maneras de usar el intérprete de Python: en modo de comandos y en modo de guión. En modo de
comandos se escriben sentencias en lenguaje Python en el intérprete de comandos de Python y éste
muestra el resultado inmediatamente:
$ python3
Python 3.2 (r32:88445, Mar 25 2011, 19:28:28)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 2
4
>>>
La primera línea de este ejemplo es el comando que pone en marcha al intérp rete de Python — en el indicador
de comandos de sistemas tipo UNIX. Las tres líneas siguientes son mensajes del intérprete. La quinta línea
comienza con >>>, que es el indicador del intérprete de comandos de Python para indicar que está listo.
Si escribimos print 2 + 2 el intérprete contestará 4.
Alternativamente, se puede escribir el programa en un archivo y usar el intérprete para ejecutar el contenido de
dicho archivo. El archivo, en este caso, se denomina archivo guión.
2. Por ejemplo, en un editor de texto se puede crear un archivo con el nombre primerprograma.py que contenga
lo siguiente:
print("Mi primer programa suma dos números, 2 y 3:")
print(2 + 3)
¿Qué es un programa?
Un programa es una secuencia de instrucciones que especifican cómo ejecutar un cómputo. El cómputo puede
ser algo matemático, como solucionar un sistema de ecuaciones o determinar las raíces de un polinomio, pero
también puede ser un cómputo simbólico, como buscar y reemplazar el texto de un documento o (aunque
parezca raro) compilar un programa.
Las instrucciones (comandos, órdenes) tienen una apariencia diferente en lenguajes de programación distintos,
pero existen algunas que son básicas, que se presentan en casi todo lenguaje, y que pueden agruparse en los
siguientes conceptos:
Entrada:
Reciben datos del teclado, de un archivo o de algún otro dispositivo.
Salida:
Muestran datos en el monitor o los envían a un archivo u otro dispositivo.
Matemáticas y Lógica:
Ejecutan operaciones básicas de matemáticas como la adición, la multiplicación y las operaciones lógicas
como and, or y not.
Operación Condicional:
Prueban la veracidad de alguna condición y ejecutan la secuencia de instrucciones apropiada.
Repetición:
Ejecutan alguna acción repetidas veces, usualmente con alguna variación.
Errores de sintaxis
Python sólo puede ejecutar un programa si el programa está correcto sintácticamente; de lo contrario, el
proceso falla y devuelve un mensaje de error. La palabra sintaxis se refiere a la estructura de cualquier
programa y a las reglas de esa estructura.
Errores en tiempo de ejecución
El segundo tipo de error es un error en tiempo de ejecución. Este error aparece sólo cuando se ejecuta un
programa. Estos errores también se llaman excepciones porque indican que algo excepcional (y malo) ha
ocurrido.
Errores semánticos
El tercer tipo de error es el error semántico. Si hay un error semántico en su programa, el programa será
ejecutado sin ningún mensaje de error, pero el resultado no será el deseado. El programa ejecutará
exactamente lo que usted le dijo que ejecutara.
Comentarios
Es una buena idea agregar notas a sus programas para explicar en lenguaje natural lo que está haciendo en el
programa.
Un comentario en programación es el texto que está destinado sólo para el lector humano - es completamente
ignorado por el intérprete.
En Python, el símbolo # unidad de léxico es iniciar un comentario. El resto de la línea se ignora. He aquí una
nueva versión de Hola, mundo!
#---------------------------------------------------------------------
# Este programa de demostración muestra lo elegante que Python es!
3. # Escrito por Joe jabón, diciembre de 2010.
# Cualquier persona puede libremente copiar o modificar este programa.
#---------------------------------------------------------------------
print ("Hola, mundo!") # No es tan fácil!
Para varias líneas se usa TRIPLE COMILLAS DOBLES (“””) O SIMPLES (''')
Valores y Tipos de Datos
Un valor es una de las cosas fundamentales que un programa manipula — como una letra o un número. Los
valores que hemos visto hasta ahora son el número 4 (resultado de la adición de 2 + 2),
y "¡Hola, todo el mundo!".
Estos valores pertenecen a diferente clases (classes) o tipos: 4 es un entero, y "¡Hola, todo el mundo!" es
una cadena, llamada así porque contiene una cadena de letras. Usted (y el intérprete) puede identificar
cadenas porque están encerradas entre comillas.
Si usted no está seguro de que clase se divide en un valor, Python tiene una función llamada tipo (type) la cual
le incida a usted.
>>> type("Hola, todo el mundo!")
<class 'str'>
>>> type(17)
<class 'int'>
No es sorprendente que las cadenas pertenezcan al tipo str y los enteros pertenezcan al tipo int. Los números
con un punto decimal pertenezcan a un tipo llamado float, porque éstos se representan en un formato
denominado punto flotante. En esta etapa, se puede tratar la clase y el tipo de palabras de manera
intercambiable. Volveremos a una comprensión más profunda de lo que es una clase en capítulos posteriores.
>>> type(3.2)
<type 'float'>
¿Que ocurre con valores como "17" y "3.2"? Parecen números, pero están encerrados entre comillas como las
cadenas.
>>> type("17")
<type 'str'>
>>> type("3.2")
<type 'str'>
Variables
Una de las características más poderosas en un lenguaje de programación es la capacidad de
manipular variables. Una variable es un nombre que se refiere a un valor.
La sintaxis sería:
Nombre variable=Valor a asignar
La sentencia de asignación crea nuevas variables y les da valores:
Python tiene varias palabras clave que no pueden ser usadas como nombres de variables. Ejemplos:
and as assert break class continue
4. def del elif else except exec
finally for from global if import
in is lambda nonlocal not or
pass raise return try while with
yield True False None
Sentencias
Una sentencia es una instrucción que el intérprete de Python puede ejecutar. Hemos visto otras clases de
sentencias hasta el momento. Otros tipos de sentencias que se verá en breve son las sentencias
de while, for, if, y de import.
Evaluación de expresiones
Una expresión es una combinación de valores, variables, operadores, y llamadas funciones. Si escribe una
expresión en la línea de comandos de Python, el intérprete la evalúa y despliega el resultado:
len("hola")
RESULTADO:
4
En este ejemplo len es una función integrada de Python que devuelve el número de caracteres de una cadena.
Operadores y operandos
Los operadores son símbolos especiales que representan cómputos como la suma y la multiplicación. Los
valores que el operador usa se denominan operandos.
Operadores Aritméticos
Entre los operadores aritméticos que Python utiliza, podemos encontrar los siguientes:
Operador Descripción Ejemplo
+ Suma r = 3 + 2 # r es 5
- Resta r = 4 - 7 # r es -3
- Negación r = -7 # r es -7
* Multiplicación r = 2 * 6 # r es 12
** Exponente r = 2 ** 6 # r es 64
/ División r = 3.5 / 2 # r es 1.75
// División entera r = 3.5 // 2 # r es 1.0
% Módulo r = 7 % 2 # r es 1
Los símbolos +, - y *, y los paréntesis para agrupar, significan en Python lo mismo que en matemáticas. El
asterisco (*) es el símbolo para la multiplicación, y ** es el símbolo para la potenciación.
2 ** 3
RESULTADO:
8
6. r = 3.0 / 2
r
RESULTADO:
r = float(3) / 2
r
RESULTADO:
a = “uno”
a
RESULTADO:
b = “dos”
b
RESULTADO:
7. Operadores Relacionales
Operador Descripción Ejemplo
== ¿son iguales a y
b?
r = 5 == 3 # r
es False
!= ¿son distintos a y
b?
r = 5 != 3 # r es
True
< ¿es a menor que
b?
r = 5 < 3 # r es
False
> ¿es a mayor que
b?
r = 5 > 3 # r es
True
<= ¿es a menor o
igual que b?
r = 5 <= 5 # r
es True
>= ¿es a mayor o
igual que b?
r = 5 >= 3 # r
es True
Operadores Lógicos
Operador Descripción Resultado
and 5 == 7 and 7 <
12
0 y 0 Falso
or 12 == 12 or 15
< 7
1 o 0 Verdadero
not not 5 == 7 and 7
< 12
~ (0 y 0) Verdadero
Asignación múltiple
Otra de las ventajas que Python nos provee, es la de poder asignar en una sola instrucción, múltiples
variables:
a, b, c = 'string’, 15, True
print a
RESULTADO:
8. print b
RESULTADO:
print c
RESULTADO:
Funciones de tipo convertidor
Aquí vamos a ver otras tres funciones de Python como int, float, y str. que (intenta de) convertir sus
argumentos en tipos int, float y str respectivamente. Las llamamos funciones de tipo convertidor.
La función int puede tomar un número de punto flotante o una cadena, y convertirlo en un int. Para los
números de punto flotante, descarta la parte decimal del número - un proceso que llamamos truncamiento a
cero en la recta numérica. Vamos a ver esto en acción:
int(3.14)
RESULTADO:
10. int("23 bottles")
RESULTADO:
El último caso muestra que una cadena tiene que ser un número sintácticamente legal, de lo contrario obtendrá
uno de esos molestos errores de ejecución.
El convertidor de tipo float puede convertir un número entero, en float, o una cadena sintácticamente en un
float.
float(17)
RESULTADO:
float("123.45")
RESULTADO:
El convertidor de tipo str convierte su argumento en una cadena:
str(17)
RESULTADO:
11. str(123.45)
RESULTADO:
Entrada (Input o raw_input)
Hay una función integrada en Python para obtener la entrada (input) del usuario.
name = input ("Por favor entre su nombre: ")
RESULTADO:
El usuario del programa puede introducir el nombre y pulsar return (enter). Cuando esto suceda, el texto que se
ha introducido es devuelto por la función de input (entrada) y en este caso asignado a la variable de nombre.
print6 + 4 * 9
RESULTADO:
12. name="jorge"
score=8
print("Total score for %s is %s " % (name, score))
RESULTADO:
name="ORLANDO"
score=7
print("Total score for {} is {}".format(name, score))
print("Total score for", name, "is", score)
RESULTADO:
13. print("Total score for " + name + " is " + score)
RESULTADO:
print("Total score for " + name + " is " + str(score))
RESULTADO:
print("pepino","tomate")
RESULTADO:
print("pepino");print("tomate")
RESULTADO:
15. CAD=“””hola….n que talnBIENVENIDOS”””
print CAD
RESULTADO:
CAD2=“””hola….tttt cuatro sangrías y un n ENTER con dos t t sangrías”””
print CAD2
RESULTADO:
for i in range(25) :
print i
RESULTADO:
16. for i in range(1,11):
print "{0} x {1} = {2}".format(i,5,i*5)
RESULTADO:
También es posible hacer el recorrido de los caracteres dentro de una cadena para ello simplemente hacemos:
cadena = "ejemplo de cadena de caracteres"
for caracter in cadena :
print caracter
RESULTADO:
17. Los dos puntos al final de la línea de declaración del for indican el que a partir de allí inicia el bloque del for,
de ahí todo o que este después de 4 espacios parte del for, una vez que ya no haya nada después de los 4
espacios termina el bloque, si hay más de 4 espacios el intérprete marca error.
Listas
La lista es un tipo de colección ordenada. Sería equivalente a lo que en otros lenguajes se conoce por arrays,
o vectores.
Las listas pueden contener cualquier tipo de dato: números, cadenas, booleanos y también listas.
Las listas en Python son estructuras de datos predefinidas en las que se pueden agregar o quitar elementos
dentro de la lista puede haber cualquier tipo de dato, caracteres, cadenas, enteros, flotantes o incluso otras
listas.
Crear una lista es tan sencillo como indicar entre corchetes, y separados por comas, los valores que queremos
incluir en la lista:
l = [22, True, “una lista”, [1, 2]]
18. RESULTADO:
Podemos acceder a cada uno de los elementos de la lista escribiendo el nombre de la lista e indicando el
índice del elemento entre corchetes. Ten en cuenta sin embargo que el índice del primer elemento de la lista
es 0, y no 1:
l = [11, False]
mi_var = l[0]
RESULTADO:
Si queremos acceder a un elemento de una lista incluida dentro de otra lista tendremos que utilizar dos veces
este operador, primero para indicar a qué posición de la lista exterior queremos acceder, y el segundo para
seleccionar el elemento de la lista interior:
l = [“una lista”, [1, 2]]
RESULTADO:
Hay 3 formas totalmente válidas para declarar las listas la primera asignando la variable con el comando list:
lista = list()
La segunda asignando a la variable dos corchetes []:
lista = []
La tercera, es crear una lista y agregar sus elementos, para ello, los elementos van dentro de corchetes
separados por comas:
19. lista = [1,2,4,"uno","hola",34.55]
print lista
RESULTADO:
Una vez declarada la lista hay tenemos básicamente 2 opciones, hay más pero considero estas las más
importantes y básicas. Agregar elementos y Borrar elementos.
Agregando Elementos a la lista
Para agregar elementos usamos la funcion append (elemento) que pertenece al objeto de la lista ejemplos:
lista = []
lista.append(100)
lista.append(55.5)
lista.append('a')
lista.append("Hola Mundo")
print lista
RESULTADO:
Contando los Elementos a la lista
Cuando queramos saber cuántos elementos hay en nuestra lista usaremos la función len(lista) y nos devolverá
un entero indicando el número de elementos en la lista, ejemplo :
lista = []
lista.append(100)
lista.append(55.5)
lista.append('a')
lista.append("Hola Mundo")
lista.append(890)
lista.append(65.4)
elementos = len(lista)
print "En la lista hay" , elementos , "elementos"
RESULTADO:
20. Aquí guardamos el número de elementos dentro de la variable elementos.
Accediendo a los Elementos de la lista
La forma de acceder a los elementos de la lista, es usando un índice como identificador del elemento, siendo
el primer elemento de la lista el índice 0, y continuando con 1,2 3 e incrementando… ejemplo:
lista = []
lista.append("hola")
lista.append("mundo")
print lista[0],"", lista[1] # el resultado sera : hola mundo
RESULTADO:
Eliminando Elementos de la lista
Todo hasta aqui ha sido facil y sencillo, y eliminar objetos no sera la excepcion, para eliminar un objeto de la
lista usamos la funcion remove(elemento), ejemplo :
lista = ['a','e','i','o','u']
lista.remove('u')
lista.remove('i')
elem = len(lista)
print "Hay " ,elem , "elementos en la lista"
RESULTADO:
21. PRUEBA EL SIGUIENTE CODIGO:
for f in ["Joe", "Amy", "Brad", "Angelica", "Zuki", "Thandi", "Paris"]:
invitación = "Hola " + f + ". Por favor, ven a mi fiesta el sábado!
print(invitación)
RESULTADO:
for i in range(4):
print(i)
RESULTADO: