Python Programación - Internet Archive

2y ago
18 Views
2 Downloads
2.37 MB
315 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Nadine Tse
Transcription

1Escuela Superior Politécnica del LitoralPythonProgramaciónLibro digitalVersión 2.1 – 2015Luis Rodríguez OjedaESPOL – Python Programación

2Python ProgramaciónPrefacioEste documento es una contribución bibliográfica para los estudiantes que toman unprimer curso de Programación de Computadoras a nivel universitario. El estudio delmaterial incluido en los primeros doce capítulos no tiene pre-requistos, solamente elinterés en conocer un lenguaje actual que posteriormente pueda ser usado como elsoporte para resolver computacionalmente problemas de diferente nivel de complejidad eningeniería, matemáticas y otras áreas. Sin embargo, es deseable que los interesadostengan algun conocimiento básico de la lógica matemática.El enfoque didáctico utilizado en este documento es el aprendizaje mediante ejemplos ydesarrollo de ejercicios propuestos. El material incluye muchos ejemplos para describir losconceptos algorítmicos en forma práctica y su traducción al lenguaje computacionalPython.Python es un interpretador de instrucciones muy eficiente y de acceso libre y públicodisponible para su instalación desde la red internet. El lenguaje Python es fácil de aprendery aplicar, versátil y muy conveniente para iniciar el aprendizaje de lenguajes deprogramación de manera progresiva y creativa usando diferentes metodologías deprogramación.El soporte de este documento es la experiencia desarrollada por el autor impartiendocursos de enseñanza de lenguajes de programación para estudiantes de ingeniería y elhaber desarrollado otros documentos digitales de apoyo bibliográfico.Este documento es de uso público y distribución libre y se adhiere a la corriente dedesarrollar textos digitales que puedan ser actualizados y mejorados continuamente ydisponibles para su uso en línea, reduciendo el consumo de papel y tinta, contribuyendoasí con el cuidado del medio ambiente.El documento ha sido compilado en un formato que facilita el uso de la información. Sepuede controlar el tamaño del texto en pantalla, agregar un índice electrónico para facilitarbúsqueda de temas, resaltar digitalmente texto, insertar comentarios, notas, enlaces,revisiones, etc. y que no sería posible en un texto impreso.Escuela Superior Politécnica del LitoralLuis Rodríguez Ojeda, M.Sc.Profesor2014lrodrig@espol.edu.ecESPOL – Python Programación

3Organización del materialEl capítulo 1 establece un modelo general para la resolución de problemas con elcomputador. Los usuarios pudieran darle unos pocos minutos a su lectura.Los capítulos 2 y 3 son opcionales. Pueden ser de interés para los usuarios que quieranentender los conceptos abstractos de algoritmos y la construcción de algoritmoscomputacionales independientemente de un lenguaje de programación específico.El capítulo 4 tiene información general acerca de lenguajes de programación ymetodologías de programación. Su lectura tomará pocos minutosLos capítulos 5, 6, 7 y 8 contienen el material para conocer y practicar el lenguaje deprogramación Python. Su estudio cubriría el tiempo de un semestre académico paraestudiantes de carreras de ingeniería.Los capítulos 9, 10 y 11 son una introducción a temas que normalmente son de interéspara estudiantes que siguen una carrera orientada a áreas computacionales.Los capítulos 12 y 13 pueden ser de interés para usuarios que tienen un nivel deconocimientos matemáticos más avanzados y requieren resolver problemas matemáticosde este tipo con el soporte de librerías especializadas de Python.ESPOL – Python Programación

4Contenido123Introducción101.1Objetivo y requisitos101.2Metodología101.3Un modelo para resolver problemas con el computador10Algoritmos122.1Estructura de un algoritmo122.2Lenguajes para escribir algoritmos132.3Definiciones132.4Introducción a la construcción de algoritmos132.5Ejercicios de creación de algoritmos16Construcción de algoritmos computacionales193.1Instrucciones u operaciones elementales193.2Diagramas de flujo213.3Seudo lenguaje233.3.124Algunas instrucciones típicas de asignación ennotación algorítmica3.3.2Ejercicios con la notación algorítmica: Algoritmos25secuenciales3.4Estructuras de control de flujo de un algoritmo263.4.1Decisones263.4.2Ejercicios con la notación algorítmica: Algoritmos32con decisiones3.4.3Ciclos333.4.4Ejercicios con la notación algorítmica: Algoritmos41con ciclos45Lenguajes de Programación de Computadoras424.1Metodologías de programación434.2Factores para elegir un lenguaje de programación434.3Lenguajes compilados y lenguajes interpretados44El lenguaje Python455.1Origen del lenguaje Python455.2Caracteristicas del lenguaje computacional Python46ESPOL – Python Programación

55.3Carga e instalación485.4Extensiones al lenguaje505.5Desarrollo de programas515.6Algunos elementos básicos para escribir programas515.6.1Tipos de datos básicos515.6.2Variables o identificadores525.6.3Operadores525.6.4Conversión entre tipos de datos555.6.5Tipos numéricos en otras bases565.6.6Uso de módulos especiales575.6.7El sistema de ayuda585.6.8Documentación en linea595.6.9Depuración de programas595.6.10 Funciones del módulo math605.6.11 Traducción de expresiones615.6.12 Ejercicios de traducción de expresiones615.6.13 Un ejemplo introductorio desarrollado en62modo interactivo5.6.14 Práctica computacional en la ventana interactiva635.6.15 Ejercicios de resolución de problemas en la ventana64interactiva5.7Instrucciones básicas para programar con Python655.7.1Instrucción de asignación655.7.2Asignaciones especiales655.7.3Instrucción para ingreso de datos675.7.4Instrucción para salida de resultados685.7.5Documentación de los programas695.7.6Encolumnamiento de instrucciones695.7.7El primer ejemplo desarrollado en modo de70programamación5.7.8Ejercicios de programación con las instrucciones73básicas5.7.9Operadores para aritmética entera5.7.10 Ejercicios de programación con los operadores para7475aritmética entera5.8Decisiones en Python765.8.1Ejecución condicionada de un bloque de instrucciones 765.8.2Ejecución selectiva entre dos bloques de instrucciones 79ESPOL – Python Programación

65.8.3Decisiones anidadas815.8.4Decisiones consecutivas845.8.5Ejercicios de programación con decisiones875.9Números aleatorios915.10Ciclos en Python935.10.1 Ejecución repetida de un bloque mediante93una condición al inicio5.10.2 Ejecución repetida de un bloque mediante98una secuencia5.10.3 Ciclos anidados1155.10.4 La instrucción break1255.10.5 La instrucción continue1285.10.6 La instrucción exit1295.10.7 La instrucción pass1295.10.8 El objeto None1295.10.9 Ejecución repetida de un bloque mediante una130condición al final5.116Introducción a validación de datos1325.11.1 Control de excepciones1335.12Ejercicios de programación con ciclos1385.13Programas que interactúan con un menú1435.13.1 Ejercicios de programación con menú147Creación de funciones1486.1Declaración de una función1486.2Parámetros empaquetados1526.3Parámetros por omisión1526.4Espacio de las variables de programas y funciones1556.5Declaración de variables globales1566.6Funciones sin parámetros1576.7Expresiones lambda1576.8Funciones recursivas1586.9Funciones generadoras1616.9.1Generadores infinitos1636.9.2Interrupción de un ciclo doble1656.10Sugerencias generales para programar con funciones1666.11Ejercicios con funciones167ESPOL – Python Programación

77Tipos de datos estructurados1697.1Listas1697.2Tuplas1747.3Cadenas de caracteres ogramación de iteraciones con tipos de datos estructurados 1817.7Operaciones con listas1837.7.1183Métodos, operadores y funciones para manejode listas7.7.2Construcción declarativa de listas numéricas1877.7.3Nombres de listas vinculados1897.7.4Algunas funciones de la librería estándar para listas190numéricas7.7.5Algunas funciones de la librería NumPy para listas190Numéricas7.87.7.6Salida de listas formateada1917.7.7Resolución de problemas con listas y vectores1917.7.8Ejercicios con listas y vectores206Operaciones con cadenas de caracteres2107.8.1Cadenas de caracteres constantes2107.8.2Métodos, operadores y funciones para cadenas de211caracteres7.8.3Resolución de problemas con cadenas de215caracteres7.8.47.9Ejercicios con cadenas de caracteres220Operaciones con matrices2237.9.1224Construcción declarativa de listas numéricas(matrices)7.9.2Algunas funciones de la librería NumPy para matrices2257.9.3Operaciones matemáticas de NumPy con matrices2277.9.4Algunas funciones especiales de NumPy con matrices2277.9.5Resolución de problemas con matrices2317.9.6Listas multidimensionales2417.9.7Ejercicios con matrices243ESPOL – Python Programación

88Registros y archivos2488.1Definición de registros2488.2Desarrollo de aplicaciones con registros en memoria2498.3Funciones y métodos para manejo de archivos secuenciales256en disco8.4Conversión de registros a líneas de texto para almacenar258en archivos secuenciales en el disco8.5Desarrollo de una aplicación con registros y archivos259secuenciales en el disco8.6Desarrollo de una aplicación con acceso directo a registros263almacenados en disco8.79Ejercicios y aplicaciones con registros y archivos273Programación Orientada a Objetos2769.1278Diseño de clases para representar estructuras de datosespeciales9.2109.1.1Estructura de datos Pila2789.1.2Estructura de datos Cola283Ejercicios de Programación Orientada a Objetos287Diseño de Interfaz de Usuario28810.1289Diseño de interfaz de usuario con Programación Orientadaa Objetos1112Eficiencia de algoritmos y programas29311.1La notación O( )295Librerías especializadas29712.1Librerías gráficas: Pylab, Matplotlib29712.1.1 Gráficos en el plano29712.1.2 Gráficos en coordenadas polares29812.1.3 Gráficos de ecuaciones implícitas29912.1.4 Graficación de histogramas29912.1.5 Gráficos 3D300Librería para manejo matemático simbólico: SymPy30112.2.1 Declaración de variables smbólicas30112.2.2 Operaciones algebraicas30112.2.3 Evaluación de expresiones30112.2ESPOL – Python Programación

91312.2.4 Operaciones del cálculo30212.2.5 Resolución de ecuaciones30312.2.6 Salida formateada de expresiones30412.2.7 Gráficos en el plano con SymPy30412.2.8 Gráficos 3D con SymPy304Métodos Numéricos30513.1Resolución de problemas en la ventana interactiva30513.2Librería de métodos numéricos30713.3Aplicación de los métodos numericos de la librería Métodos31013.4Librerías de Python para resolver numéricamente ecuaciones313diferenciales13.514Problemas de aplicación de los métodos numéricosBibliografíaESPOL – Python Programación314315

10Python Programación1Introducción1.1Objetivo y requisitosEsta obra es una contribución para el desarrollo de una metodología computacional pararesolver problemas basada en los principios de la construcción de algoritmos.El soporte computacional es el lenguaje Python con el que se explora y se adquiere la práctica yel conocimiento suficiente para la programación de computadoras aplicada a la resolución deproblemas matemáticos, de ingeniería y otras ciencias. Es deseable que los interesados tenganalgun conocimiento básico de la lógica matemática.1.2MetodologíaMediante explicaciones basadas en ejemplos el usuario puede adquirir en forma progresiva losconocimientos necesarios para resolver problemas y su programación en Python. El desarrollode variados ejercicios proporcionará la base para extenderlos y aplicarlos a la resolución deproblemas más complejos. Al mismo tiempo, el usuario podrá desarrollar su propio estilo deprogramación.1.3Un modelo para resolver problemas con el computadorEl análisis y diseño de soluciones computacionales es una ciencia que facilita el usoeficiente del poder de las computadoras para resolver problemas.Para facilitar el desarrollo de estas soluciones, es adecuado usar un lenguajecomputacional simple, general y eficiente como el que ofrece Python.El siguiente gráfico describe los pasos en la solución computacional de un sultadosRevisiónPrimero, es necesario asegurarnos que el problema que intentamos resolver está ennuestro ámbito de conocimiento. No es recomendable intentar resolver problemas si notenemos el conocimiento y la práctica para enfrentar su solución.En la etapa de Análisis se estudia el problema en forma detallada: sus características, lasvariables y los procesos que intervienen. Asimismo, se deben definir los datos que serequieren y cual es el objetivo esperado. El resultado de esta etapa son lasespecificaciones detalladas de los requerimientos que en algunos casos se puedenexpresar en forma matemática.ESPOL – Python Programación

11En la etapa de Diseño se procede a elaborar los procedimientos necesarios para cumplircon los requerimientos especificados en el análisis, incluyendo fórmulas, tablas, etc. Elobjeto resultante se denomina algoritmo.En la etapa de Instrumentación, si el problema es simple, se puede obtener la solucióninteractuando directamente mediante instrumentos disponibles en el entornocomputacional. Si el problema es más complejo, deben construirse programas y definir elingreso y la organización de los datos necesarios.Al concluir la etapa de la instrumentación, se usan datos para realizar pruebas de losprogramas. Es necesario que se realice una revisión en cada etapa de este proceso y quese validen los resultados obtenidos antes de aceptarlos y continuar.Posteriormente se efectúa la instalación y operación. Debe preverse la necesidad demantenimiento y cambios en los programas para ajustarlos al entorno en el que se usarán.Este proceso necesita ser planificado y sistematizado para que su desarrollo sea eficientesiendo imprescindible seguir normas, utilizar metodologías de programación y manteneruna documentación adecuada.Los instrumentos computacionales modernos tales como Python disponen de facilidadespara probar interactivamente instrucciones y programas a medida que son desarrollados,mejorando así la productividad. También ofrece librerías que facilitan el desarrollo de losproyectos de programación.ESPOL – Python Programación

122AlgoritmosUn algoritmo es una descripción ordenada de las instrucciones que deben realizarse pararesolver un problema en un tiempo finito.Para crear un algoritmo es necesario conocer en forma detallada el problema, lasvariables, los datos que se necesitan, los procesos involucrados, las restricciones, y losresultados esperados o por lo menos los criterios para considerarlos correctos.La descripción del algoritmo debe orientarse a la instrumentación computacional, perocuando los problemas son simples, puede omitirse la elaboración detallada del algoritmo eir directamente a la codificación en el lenguaje computacional siempre que este ofrezcauna sintaxis fácil de usar y entender.Es muy importante desarrollar el pensamiento algorítmico progresivamente con la ayudade ejemplos y con la práctica. El objetivo final es estructurar una metodología para facilitarla resolución de problemas, investigando sus componentes y cumpliendo losrequerimientos.2.1Estructura de un algoritmoUn algoritmo es un objeto que debe comunicarse con el entorno. Por lo tanto debe incluirfacilidades para el ingreso de datos y la salida de resultados.Dentro de un algoritmo se describe el procedimiento, mediante instrucciones, que realizarála transformación de los datos y producirá los resultados esperados.AlgoritmoEntradaInstruccionesESPOL – Python ProgramaciónSalida

132.2Lenguajes para escribir algoritmosPara escribir algoritmos se pueden usar diferentes notaciones: lenguaje natural, lenguajesgráficos, lenguajes simbólicos, etc.Para que una notación sea útil debe poseer algunas características que permitan produciralgoritmos fáciles de construir, entender y aplicar:1) Las instrucciones deben ser simples para facilitar su uso.2) Las instrucciones deben ser claras y precisas para evitar ambigüedades.3) Debe incluir suficientes instrucciones para describir la solución de problemas.4) Preferentemente, las instrucciones deben tener orientación computacional.Los algoritmos deben ser reproducibles, es decir que al ejecutarse deben entregar losmismos resultados si se utilizan los mismos datos.2.3Definicionesa) ProcesoConjunto de acciones realizadas al ejecutar las instrucciones descritas en un algoritmo.b) EstadoSituación de un proceso en cada etapa de su realización, desde su inicio hasta sufinalización. En cada etapa, las variables pueden modificarse.c) VariablesSímbolos con los que se representan los valores que se producen en el proceso.Componentes de una ción de cada variableConjunto de valores o dominio asociado a la variableValor asignado a una variableDispositivo que almacena el valor asignado a una variableIntroducción a la construcción de algoritmosEl desarrollo de algoritmos constituye una metodología para resolver problemas en formaorganizada.Primero debe definirse el objetivo al que se desea llegar, luego deben identificarse loscomponentes o variables y escribir las instrucciones necesarias para poder realizar loscambios que permitirán llegar al objetivo propuesto. Para validar el algoritmo deberealizarse alguna prueba con la cual se puede verificar que el resultado es correcto.A continuación se propone un problema y se describe un procedimiento algorítmico parallegar a la solución.ESPOL – Python Programación

14Ejemplo. En el gráfico siguiente se muestra un recipiente grande con algún refresco y sepropone el problema de obtener exactamente 4 cc. usando solamente los instrumentosmostrados los cuales tienen indicada su capacidad. Se supondrá que el recipiente grandecontiene suficiente cantidad de refresco. Es posible trasladar el contenido entre recipientespero no se dispone de ningún dispositivo adicional para medición.Describa un algoritmo para llegar a la solución.5 cc.3 cc.Objetivo propuesto: Que el recipiente de 5 cc. contenga 4 cc. del refrescoVariablesSean A: Representación del recipiente cuya capacidad es 5 cc.B: Representación del recipiente cuya capacidad es 3 cc.C: Representación del recipiente grande con cantidad suficiente de refresco.Algoritmo1.2.3.4.5.6.7.Llene A con el refresco de CVierta A en B hasta llenarloVierta todo el contenido de B en CVierta el resto del contenido de A en BLlene A con el refresco de CVierta el contenido de A en B hasta llenarloEl recipiente A contendrá 4 cc.PruebaRecorrer el algoritmo anotando los valores que toman las variables A y BInstrucciónInicio123456Contenido de A0522054Contenido de B0030223ResultadoSe verifica que en el recipiente A quedarán 4 cc.ESPOL – Python Programación

15Observe los componentes que intervienen en la construcción del algoritmo:a)b)c)d)e)Propuesta del objetivoDefinición de variablesLista de instruccionesPrueba del algoritmoVerificación del resultado obtenidoEjemplo. Describa un algoritmo para revisar un vehículo antes de un viaje.Algoritmo12345Si el nivel de agua del radiador está bajoComplete el nivel de agua del radiadorSi el nivel de gasolina es bajoAcuda a la estación de gasolina y llene el tanqueSi el nivel de aceite del motor es bajoAcuda a la estación de servicio para chequear el vehículoPara cada llanta repita la siguiente instrucciónCompruebe la presión del aireSi alguna llanta registró presión bajaAcuda a la estación de servicio para revisión de llantasEsta descripción pretende ser un algoritmo para la revisión del vehículo. Contieneacciones condicionadas y también una instrucción para repetir una acción varias veces.Sin embargo, el uso del lenguaje común no permite que la descripción sea suficientementeprecisa para facilitar el seguimiento de las instrucciones. Tampoco se puede constatar quese cumple el objetivo propuesto como en el ejemplo anterior. Por lo tanto, se lo puedeconsiderar simplemente como un instructivo de ayuda.Los lenguajes algorítmicos deben ser permitir crear descripciones claras, de tal maneraque no haya posibilidad de interpretar las instrucciones de más de una manera.ESPOL – Python Programación

162.5Ejercicios de creación de algoritmosPara cada ejercicio proponga un algoritmo para obtener la so

ESPOL – Python Programación . 10 Python Programación . 1 Introducción . 1.1 Objetivo y requisitos . Esta obra es una contribución para el desarrollo de una metodología computacional para resolver problemas ba

Related Documents:

Python Programming for the Absolute Beginner Second Edition. CONTENTS CHAPTER 1 GETTING STARTED: THE GAME OVER PROGRAM 1 Examining the Game Over Program 2 Introducing Python 3 Python Is Easy to Use 3 Python Is Powerful 3 Python Is Object Oriented 4 Python Is a "Glue" Language 4 Python Runs Everywhere 4 Python Has a Strong Community 4 Python Is Free and Open Source 5 Setting Up Python on .

Python 2 versus Python 3 - the great debate Installing Python Setting up the Python interpreter About virtualenv Your first virtual environment Your friend, the console How you can run a Python program Running Python scripts Running the Python interactive shell Running Python as a service Running Python as a GUI application How is Python code .

El nombre verdadero de la programaci on Una concepci on de ensenanza de la programaci on para la sociedad de la informaci on Pablo E. Mart nez L opez*, Eduardo A. Bonelli**, and Federico A. Sawady O’Connor*** Universidad Nacional de Quilmes Cuando sepas re

Python is readable 5 Python is complete—"batteries included" 6 Python is cross-platform 6 Python is free 6 1.3 What Python doesn't do as well 7 Python is not the fastest language 7 Python doesn't have the most libraries 8 Python doesn't check variable types at compile time 8 1.4 Why learn Python 3? 8 1.5 Summary 9

site "Python 2.x is legacy, Python 3.x is the present and future of the language". In addition, "Python 3 eliminates many quirks that can unnecessarily trip up beginning programmers". However, note that Python 2 is currently still rather widely used. Python 2 and 3 are about 90% similar. Hence if you learn Python 3, you will likely

There are currently two versions of Python in use; Python 2 and Python 3. Python 3 is not backward compatible with Python 2. A lot of the imported modules were only available in Python 2 for quite some time, leading to a slow adoption of Python 3. However, this not really an issue anymore. Support for Python 2 will end in 2020.

A Python Book A Python Book: Beginning Python, Advanced Python, and Python Exercises Author: Dave Kuhlman Contact: dkuhlman@davekuhlman.org

Mike Driscoll has been programming with Python for more than a decade. He has been writing about Python on his blog, The Mouse vs. The Python, for many years. Mike is the author of several Python books including Python 101, Python Interviews, and ReportLab: PDF Processing with Python. You can find Mike on Twitter or GitHub via his handle .