

































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Elementos de un programa en python
Tipo: Apuntes
1 / 41
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


































Un programa de Python es un fichero de texto (normalmente guardado con el juego de caracteres UTF-8) que contiene expresiones y sentencias del lenguaje Python. Esas expresiones y sentencias se consiguen combinando los elementos básicos dellenguaje.
El lenguaje Python está formado por elementos ( tokens ) de diferentes tipos:
Un programa está formado por líneasinstrucción , aunque puede haber varias instrucciones en una línea (lo que se. En principio, cada línea contiene una desaconseja) y una instrucción puede escribirse en varias líneas (cuando la instrucción es demasiado larga, es decir, más de 80 caracteres). Los elementos del lenguaje se separan por espacios en blanco (normalmente, uno), aunque en algunos casos no se escriben espacios:
argumentos
o comillas) Los espacios no son significativos, es decir, da lo mismo un espacio que varios, excepto al principio de una línea. Los espacios al principio de una línea (el sangrado) indican un nivel de agrupamiento. El sangrado inicial es una de las características de Python que lo distinguen de otros lenguajes, que utilizan un caracter para delimitaragrupamientos (en muchos lenguajes se utilizan las llaves { }). Por ello, a menos que forme parte de un bloque de instrucciones, una línea no puede contener espacios iniciales.
>>> x = 42 SyntaxError: unexpected indent
El carácter almohadilla (#) marca el inicio de un comentario. Python ignora el resto de la línea (desde la almohadilla hasta el final de la línea).
Palabras reservadas ( keywords ) Las palabras reservadas de Python son las que forman el núcleo del lenguaje Python. Son las siguientes: False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise Estas palabras no pueden utilizarse para nombrar otros elementos (variables, funciones, etc.), aunque pueden aparecer en cadenas de texto. Literales Los literales son los datos simples que Python es capaz de manejar:
Si se escribe una coma como separador entre la parte entera y la decimal, Python no lo entiende como separador, sino como una pareja de números (concretamente,lo entiende como una tupla de dos elementos.
Si se escribe un número con parte decimal 0, Python considera el número como número decimal. >>> 3.
Se puede escribir un número decimal sin parte entera, pero lo habitual es escribir siempre la parte entera: >>>.
Las cuatro operaciones básicas Las cuatro operaciones aritméticas básicas son la suma (+), la resta (-), la multiplicación (*) y la división (/). Al hacer operaciones en las que intervienen números enteros y decimales, el resultadodecimal, Python escribe 0 como parte decimal para indicar que el resultado es un es siempre decimal. En el caso de que el resultado no tenga parte
número decimal: >>> 4.5 * 3
>>> 4.5 * 2
Al sumar, restar o multiplicar números enteros, el resultado es entero. >>> 1 + 2 3 >>> 3 - 4
>>> 5 * 6 30 Al dividir números enteros, el resultado es siempre decimal, aunque sea un númeroentero. Cuando Python escribe un número decimal, lo escribe siempre con parte
decimal, aunque sea nula. >>> 9 / 2
Dividir por cero genera un error : >>> 5 / 0 Traceback (most recent call last): File "", line 1, in 5 / 0 ZeroDivisionError: division by zero >>> Al realizar operaciones con decimales, los resultados pueden presentar errores de redondeo: >>> 100 / 3
Este error se debe a que Python almacena los números decimales en binario y pasarde decimal a binario provoca errores de redondeo, es un error que sufren casi todos los lenguajes de programación. Si necesitamos precisión absoluta, debemos utilizar bibliotecas específicas.
Cuando en una fórmula aparecen varias operaciones, Python las efectúa aplicando las reglas usuales de prioridad de las operaciones (primero multiplicaciones y divisiones, después sumas y restas). >>> 1 + 2 * 3 7 >>> 10 - 4 * 2 2 En caso de querer que las operaciones se realicen en otro orden, se deben utilizar paréntesis. >>> (5+8) / (7-2)
Redondear un número Aunque no se puede dar una regla válida en todas las situaciones, normalmente es conveniente redondear el resultado de un cálculo cuando se muestra al usuario, sobre todo si tiene muchos decimales, para facilitar su lectura. Lo que no se debe hacer nunca es redondear resultados intermedios que se vayan a utilizar en cálculos posteriores, porque el resultado final será diferente. La función round()
En Python las cadenas de texto se delimitan con comillas simples (') o dobles ("): >>> "Esto es una cadena" 'Esto es una cadena' >>> "Esto es una cadena" 'Esto es una cadena' En el prompt del IDLE, Python escribe normalmente las cadenas entre comillassimples, pero al ejecutar programas Python no escribe las cadenas entre comillas. En Python las comillas dobles y las comillas simples son completamente equivalentes, pero en otros lenguajes de programación no lo son. Las cadenas se deben cerrar con las mismas comillas con las que se abrieron. Si no se hace así en el prompt de IDLE, se muestra un mensaje de error de sintaxis: >>> "Esto es una cadena' SyntaxError: EOL while scanning string literal >>> Si no se hace así en un programa, al ejecutarlo se muestra una ventana de error desintaxis:
print("Esto es una cadena') Sin necesidad de ejecutar la orden o el programa, la forma en que IDLE colorea la orden nos indica que hay algo incorrecto. El paréntesis de cierre se muestra decolor verde, lo que indica que IDLE no identifica la comilla simple como cierre de la cadena abierta con comilla doble. Comillas triples Comillas dentro de comillas Se pueden escribir comillas simples en cadenas delimitadas con comillas dobles y viceversa: >>> "Las comillas simples ' delimitan cadenas." "Las comillas simples ' delimitan cadenas." >>> 'Las comillas dobles " delimitan cadenas.' 'Las comillas dobles " delimitan cadenas.' Nota : Fíjese en que en el primer ejemplo, Python ha escrito la cadena entre comillas dobles. Pero no se pueden escribir en el interior de una cadena comillas del mismo tipo que las comillas delimitadoras: >>> "Las comillas dobles " delimitan cadenas" SyntaxError: invalid syntax >>> >>> 'Las comillas simples ' delimitan cadenas' SyntaxError: invalid syntax >>>
El motivo es que Python entiende que la comilla escrita en medio de la cadena estácerrando la cadena y no puede interpretar lo que viene a continuación. Sin necesidad de ejecutar la orden o el programa, la forma en que IDLE colorea la orden así nos lo indica. En un programa, obtendríamos también una ventana de error de sintaxis.Dependiendo del número y la posición de las cadenas, el mensaje de error puede ser distinto: print("Las comillas dobles " delimitan cadenas") print('Un tipo le dice a otro: '¿Cómo estás?'')
Otra forma de escribir comillas en una cadena es utilizar los caracteres especiales " y ' que representan los caracteres comillas dobles y simples respectivamente y Python no interpreta en ningún caso como delimitadores decadena: >>> 'Las comillas simples ' delimitan cadenas.' "Las comillas simples ' delimitan cadenas." >>> "Las comillas dobles " delimitan cadenas." 'Las comillas dobles " delimitan cadenas.' Se pueden utilizar ambos caracteres especiales independientemente del delimitador utilizado >>> 'Las comillas simples ' y las comillas dobles " delimitan cadenas.' 'Las comillas simples ' y las comillas dobles " delimitan cadenas.' >>> "Las comillas simples ' y las comillas dobles " delimitan cadenas." 'Las comillas simples ' y las comillas dobles " delimitan cadenas.' Nota : Fíjese en que en ambos casos, Python escribe la comilla simple como caracter especial. Caracteres especiales Los caracteres especiales empiezan por una contrabarra ().
El signo igual (=) es usado para asignar un valor a una variable. Luego, ningún resultado es mostrado antes del próximo prompt: >>> ancho = 20 >>> largo = 5* >>> ancho * largo 900 Un valor puede ser asignado a varias variables simultáneamente: >>> x = y = z = 0 # Cero a x, y, y z >>> x 0 >>> y 0 >>> z 0 Las variables deben estar "definidas" (con un valor asignado) antes de que puedan usarse, o un error ocurrirá: >>> # tratamos de acceder a una variable no definida ... n Traceback (most recent call last): File "", line 1, in NameError: name 'n' is not defined Se soporta completamente los números de punto flotante; las operaciones con mezclas en los tipos de los operandos convierten los enteros a punto flotante: >>> 3 * 3.75 / 1.
>>> 7.0 / 2
En el modo interactivo, la última expresión impresa es asignada a la variable _. Esto significa que cuando estés usando Python como una calculadora de escritorio, es más fácil seguir calculando, por ejemplo: >>> impuesto = 12.5 / 100 >>> precio = 100. >>> precio * impuesto
>>> precio + _
>>> round(_, 2)
>>> 2.-EJERCICIO 1,2 PÁGINA173 DEL LIBRO DONOSTIARRA 3.-PRÁCTICA13,14 Y 15 (PÁGINAS174,175,1769) DEL LIBRO DONOSTIARRA TUPLAS En Python, una tupla es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo. Las tuplas se representan escribiendo los elementos entre paréntesis y separadospor comas.
>>> (1, "a", 3.14) (1, 'a', 3.14) En realidad no es necesario escribir los paréntesis para indicar que se trata de una tupla, basta con escribir las comas, pero Python escribe siempre los paréntesis: >>> 1, "a", 3. (1, 'a', 3.14)
La función len() devuelve el número de elementos de una tupla: >>> len((1, "a", 3.14)) 3
Una tupla puede no contener ningún elemento, es decir, ser una tupla vacía. >>> () () >>> len(()) 0
Una tupla puede incluir un único elemento, pero para que Python entienda que nos estamos refiriendo a una tupla es necesario escribir al menos una coma. El ejemplo siguiente muestra la diferencia entre escribir o no una coma. En el primer caso Python interpreta la expresión como un número y en el segundo como una tupla de un único elemento. >>> (3) 3
Una lista puede contener listas (que a su vez pueden contener listas, que a su vez etc.): >>> persona1 = ["Ana", 25] >>> persona2 = ["Benito", 23] >>> lista = [persona1, persona2] >>> lista [['Ana', 25], ['Benito', 23]]
Se puede acceder a cualquier elemento de una lista escribiendo el nombre de la lista y entre corchetes el número de orden en la lista. El primer elemento de la listaes el número 0.
>>> lista = [10, 20, 30, 40] >>> lista[2] 30 >>> lista[0] 10
Se pueden concatenar dos listas utilizando la operación suma. >>> lista1 = [10, 20, 30, 40] >>> lista2 = [30, 20] >>> lista = lista1 + lista2 + lista >>> lista [10, 20, 30, 40, 30, 20, 10, 20, 30, 40] El tipo range() El tipo range() crea una lista inmutable de números enteros en sucesión aritmética.El tipo range() puede tener uno, dos o tres argumentos numéricos enteros. Nota sino como un tipo de datos (concretamente, una lista de enteros inmutable), aunque se utiliza como si: En Python 2, range() se consideraba una función, pero en Python 3 no se considera una función, fuera una función.
El tipo range() con un único argumento se escribe range(n) y crea una lista creciente detérminos aumentan de uno en uno). Es decir, range(n) = range(0, n) = [0, 1, ... , n términos enteros que empieza en 0 y acaba antes de llegar a n (los n-1]. Para ver los valores de la lista creada con range(), es necesario convertirla a lista mediante la función list(). >>> range(10) range(0, 10) >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Si n no es positivo, se crea una lista vacía. >>> list(range(-2)) [] >>> range(0) []
El tipo range() con dos argumentos se escribe range(m, n) y crea una lista crecientede términos enteros que empieza en m y acaba antes de llegar a n (los términos aumentan de uno en uno). Es decir, range(m, n) = [m, m+1, ... , n-1] >>> list(range(5, 10)) [5, 6, 7, 8, 9] >>> list(range(-5, 1)) [-5, -4, -3, -2, -1, 0] Si n es menor o igual que m , se crea una lista vacía. >>> list(range(5, 1))
File "", line 1, in range(3.5, 10, 2) TypeError: range() integer start argument expected, got float. Nota truncaba a enteros.: En versiones muy antiguas de Python se podían utilizar argumentos decimales, que Python
Concatenar range() No se pueden concatenar directamente tipos range() (posiblemente porque si se pudieran concatenar el resultado no se podría expresar con un tipo range()). >>> range(3) + range(5) Traceback (most recent call last): File "", line 1, in range(3) + range(5) TypeError: unsupported operand type(s) for +: 'range' and 'range' Se pueden concatenar tipos range() con el operador + si se convierten previamentea listas. El resultado es lógicamente una lista, que no se puede convertir a tipo range(). >>> list(range(3)) + list(range(5)) [0, 1, 2, 0, 1, 2, 3, 4] La función len() La función len() devuelve la longitud de una cadena de caracteres o el número de elementos de una lista. El argumento de la función len() es la lista o cadena quequeremos "medir".
>>> len("mensaje secreto") 15 >>> len(["a","b","c"]) 3 >>> len(range(1, 100, 7)) 15 El valor devuelto por la función len() se puede usar como parámetro de la función range(). >>> list(range(len("mensaje secreto"))) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] >>> list(range(len(["a","b","c"]))) [0, 1, 2] >>> list(range(len(range(1, 100, 7)))) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Las listas son conjuntos ordenados de elementos (números, cadenas, listas, etc).Las listas se delimitan por corchetes ([ ]) y los elementos se separan por comas.
Las listas pueden contener elementos del mismo tipo: >>> primos = [2, 3, 5, 7, 11, 13] >>> diasLaborables = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes"] O pueden contener elementos de tipos distintos: >>> fecha = ["Lunes", 27, "Octubre", 1997] O pueden contener listas: >>> peliculas = [ ["Senderos de Gloria", 1957], ["Hannah y sus hermanas", 1986]] Las listas pueden tener muchos niveles de anidamiento: >>> directores = [ ["Stanley Kubrick", ["Senderos de Gloria", 1957]], ["Woody Allen", ["Hannah y sus hermanas", 1986]] ] Concatenar listas Las listas se pueden concatenar con el símbolo de la suma (+): >>> vocales = ["E", "I", "O"] >>> vocales ['E', 'I', 'O'] >>> vocales = vocales + ["U"] >>> vocales ['E', 'I', 'O', 'U'] >>> vocales = ["A"] + vocales >>> vocales ['A', 'E', 'I', 'O', 'U'] El operador suma (+) necesita que los dos operandos sean listas: >>> vocales = ["E", "I", "O"] >>> vocales = vocales + "Y" Traceback (most recent call last): File "", line 1, in vocales = vocales + "Y" TypeError: can only concatenate list (not "str") to list
También se puede utilizar el operador += para añadir elementos a una lista: >>> vocales = ["A"]
>>> fecha[0] 27 >>> fecha[1] Octubre >>> fecha[2] 1998 Manipular sublistas De una lista se pueden extraer sublistas, utilizando la notación nombreDeLista [inicio:límite], donde inicio y límite hacen el mismo papel que en el tipo range(inicio, límite). >>> dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"] >>> dias[1:4] # Se extrae una lista con los valores 1, 2 y 3 ['Martes', 'Miércoles', 'Jueves'] >>> dias[4:5] # Se extrae una lista con el valor 4 ['Viernes'] >>> dias[4:4] # Se extrae una lista vacía [] >>> dias[:4] # Se extrae una lista hasta el valor 4 (no incluido) ['Lunes', 'Martes', 'Miércoles', 'Jueves'] >>> dias[4:] # Se extrae una lista desde el valor 4 (incluido) ['Viernes', 'Sábado', 'Domingo'] >>> dias[:] # Se extrae una lista con todos los valores ['Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo'] Se puede modimodificar un elemento o varios a la vez e insertar o eliminar elementos.ficar una lista modificando sublistas. De esta manera se puede
>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"] >>> letras[1:4] = ["X"] # Se sustituye la sublista ['B','C','D'] por ['X'] >>> letras ['A', 'X', 'E', 'F', 'G', 'H'] >>> letras[1:4] = ["Y", "Z"] # Se sustituye la sublista ['X','E','F'] por ['Y','Z'] ['A','Y', 'Z', 'G', 'H']
>>> letras[0:1] = ["Q"] # Se sustituye la sublista ['A'] por ['Q'] >>> letras ['Q', 'Y', 'Z', 'G', 'H'] >>> letras[3:3] = ["U", "V"] # Inserta la lista ['U','V'] en la posición 3 >>> letras ['Q', 'Y', 'Z', 'U', 'V', 'G', 'H'] >>> letras[0:3] = [] # Elimina la sublista ['Q','Y', 'Z'] >>> letras ['U', 'V', 'G', 'H'] Al deextremos (alfinir sublistas, Python acepta valores fuera del rango, que se interpretan como final o al principio de la lista).
>>> letras = ["D", "E", "F"] >>> letras[3:3] = ["G", "H"] # Añade ["G", "H"] al final de la lista >>> letras ['D', 'E', 'F', 'G', 'H'] >>> letras[100:100] = ["I", "J"] # Añade ["I", "J"] al final de la lista >>> letras ['D', 'E', 'F', 'G', 'H', 'I', 'J'] >>> letras[-100:-50] = ["A", "B", "C"] # Añade ["A", "B", "C"] al principio de la lista >>> letras ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] La palabra reservada del La palabra reservada del permite eliminar un elemento o varios elementos a la vezde una lista, e incluso la misma lista.
>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"] >>> del letras[4] # Elimina la sublista ['E'] >>> letras ['A', 'B', 'C', 'D', 'F', 'G', 'H'] >>> del letras[1:4] # Elimina la sublista ['B', 'C', 'D'] >>> letras