22
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.

Python guia01 1

Embed Size (px)

Citation preview

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.

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!

# 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

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

3 ** 2 RESULTADO:

9

2 + 3

RESULTADO:

5

3 - 2

RESULTADO:

3 % 2

RESULTADO:

r = 3.0 / 2 r

RESULTADO:

r = float(3) / 2 r

RESULTADO:

a = “uno” a

RESULTADO:

b = “dos” b

RESULTADO:

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:

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:

int(3.0)

RESULTADO:

int(-3.999)

RESULTADO:

int(minutos/60)

RESULTADO:

int("2345")

RESULTADO:

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:

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:

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:

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:

print("pepino","tomate",sep="-")

RESULTADO:

print("pepino","tomate","lechuga",sep="\t")

RESULTADO:

print("pepino","tomate","lechuga",sep=", ")

RESULTADO: >>> print("pepino","tomate","lechuga",sep=", ")

print("pepino","tomate","lechuga",end="--")

RESULTADO:

CAD=“””hola….\n que tal\nBIENVENIDOS””” print CAD

RESULTADO:

CAD2=“””hola….\t\t\t\t cuatro sangrías y un \n ENTER con dos \t \t sangrías””” print CAD2

RESULTADO:

for i in range(25) : print i

RESULTADO:

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:

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]]

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:

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:

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:

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:

Listita=list(range(6))

RESULTADO: