SERIE LENGUAJES DE PROGRAMACIÓN PROGRAMACIÓN EN PYTHON Dr. Abraham Gamarra Moreno 2020 Dr. Abraham Gamarra Moreno 1 Tema n° 1: Fundamentos de Programación: Algoritmos y estructuras secuenciales La programación de computadoras es un área apasionante y permite que las personas se comuniquen con el computador y obtengan soluciones a través de los programas escritos. En este ítem se describe los fundamentos de los lenguajes de programación, algoritmos y se escriben los primeros programas utilizando estructuras secuenciales. 1. Lenguajes de programación “Los lenguajes de programación se utilizan para escribir programas. Los programas de las computadoras modernas constan de secuencias de instrucciones” (Joyanes, 2008). Los lenguajes de programación permiten escribir instrucciones que se ejecutarán en las computadoras. Los 10 lenguajes de programación más populares según el índice TIOBE, se muestran en la tabla 1 (TIOBE, 2018). Además, la tabla 5 muestra el cambio de posición desde el año 2017 hasta el año 2018. Se debe resaltar que algunos lenguajes son más rigurosos en el buen uso de los tipos de datos. Tabla 1 Los 10 lenguajes de programación más populares. Apr 2018 Apr 2017 1 Change Programming Language Ratings Change 1 Java 15.777% +0.21% 2 2 C 13.589% +6.62% 3 3 C++ 7.218% +2.66% 4 5 Python 5.803% +2.35% 5 4 C# 5.265% +1.69% 6 7 Visual Basic .NET 4.947% +1.70% 7 6 PHP 4.218% +0.84% 8 8 JavaScript 3.492% +0.64% 9 - SQL 2.650% +2.65% 10 11 Ruby 2.018% -0.29% Tomada de: TIOBE. (10 de Abril de 2018). TIOBE Index for April 2018. Obtenido de tiobe.com: https://www.tiobe.com/tiobe-index/. Dr. Abraham Gamarra Moreno 2 Paradigmas de los lenguajes de programación Hay dos paradigmas principales: imperativos y declarativos y algunos sub paradigmas en cada uno (Dale & Lewis, 2016). El paradigma imperativo, se caracteriza por la ejecución secuencial de instrucciones, el uso de variables que representa localizaciones de memoria y el uso de sentencias de asignación que cambian los valores de estas variables (Dale & Lewis, 2016). El paradigma imperativo tiene como sub paradigmas el paradigma procedural y el paradigma orientado a objetos. El paradigma procedural es un modelo en que las sentencias están agrupadas dentro de subprogramas y algunos programas que están estas categorías son: el lenguaje C o el lenguaje BASIC, entre otros. El paradigma orientado a objetos trabaja la interacción de objetos, donde cada objeto implementa su propio comportamiento y algunos programas que están en esta categoría son: C++, Java, C# y Python, entre otros. Muchos lenguajes tienen el paradigma procedural y el paradigma orientado a objetos a la vez. El paradigma declarativo tiene los sub paradigmas funcional y lógico. El paradigma funcional está basado en el concepto matemático de función y los lenguajes más conocidos son: Lisp, Scheme y ML. El paradigma lógico está basado en el principio de la lógica simbólica y el lenguaje más representativo es Prolog (Dale & Lewis, 2016). 2. Algoritmos “Un algoritmo es un método paso a paso para resolver un problema o hacer una tarea” (Forouzan, 2003). También se puede decir que un algoritmo es un conjunto de instrucciones que permiten dar la solución a un problema. “La solución de un problema con una computadora se hace escribiendo un programa que exige al menos los siguientes pasos: 1. Definición o análisis del problema; 2. Diseño del algoritmo; 3. Transformación del algoritmo en un programa; 4. Ejecución y validación del programa” (Joyanes, 2013). Según Cairó (2006) las características que tiene un algoritmo son: Precisión: Los pasos a seguir en el algoritmo se deben precisar claramente. Determinismo: El algoritmo con las mismas entradas debe arrojar los mismos resultados. Finitud: El algoritmo debe tener un fin. Representación de un algoritmo La representación de un algoritmo se realiza a través de un diagrama de flujo o a través Dr. Abraham Gamarra Moreno 3 de un seudocódigo. El diagrama de flujo permite una representación gráfica del algoritmo. Los símbolos utilizados en un diagrama de flujo se muestran en la tabla 2 (Joyanes, 2008). Una herramienta que permite crear un diagrama de flujo es Visio. El desarrollo de los diagramas de flujo en este manual lo realizaremos utilizando el programa Visio. En este manual se utilizará el lenguaje de programación Python para mostrar la transformación del algoritmo a un programa. Tabla 2 Símbolos de diagrama de flujo. Tomada de: Joyanes, L. (2008). Fundamentos de Programación. Madrid: McGraw-Hill, pág 72. El lenguaje de programación Python “Python es un lenguaje de programación que le permite trabajar más rápido e integrar Dr. Abraham Gamarra Moreno 4 sus sistemas de manera más efectiva” ( Python Software Foundation, 2018). Con respecto a Python Coutinho (2016) menciona lo siguiente: El lenguaje de programación Python es muy interesante como primer lenguaje de programación debido a su simpleza y claridad. Aunque simple, es también un lenguaje poderoso que puede ser usado para administrar sistemas y desarrollar grandes proyectos. Es un lenguaje claro y objetivo, pues va directamente al punto, sin rodeos (pág. 18). Python es software libre y el lenguaje de programación se debe descargar del sitio web de Python, el enlace de descarga es: https://www.python.org/downloads/windows/. Una vez instalado se puede escribir los programas utilizando el entorno de desarrollo integrado (IDE) llamado IDLE. La figura 1 muestra como ejecutar IDLE. Una vez cargado IDLE se visualiza la ventana del Shell de Python (figura 2). Seleccionar la opción File y a continuación New File para abrir el editor que nos permite crear programas en Python (ver figura 3 y figura 4). En la ventana de edición de la figura 41 se debe escribir los programas utilizando el código Python, luego debe grabarlos con la opción File, Save y se debe agregar un nombre de archivo (figura 5). La ejecución del programa se realiza con la opción Run, luego elija Run Module y se debe obtener la ventana de la figura 6, donde se muestra el mensaje “Hola Mundo” (las comillas dobles no se muestran). Uso de identificadores en Python Un identificador es el nombre que se le da a una variable, constante, función, clase, etc. En Python los nombres deben comenzar con una letra o el símbolo del guion bajo (_) y los siguientes carácteres deben ser letras, dígitos y el guion bajo (_). Ejemplo de identificadores correctos: velocidad, velocidad_tangencial2, _a3. Un nombre de identificador incorrecto es: 1abc. Dr. Abraham Gamarra Moreno 5 Figura 1. Ambiente de ejecución de IDLE de Python. Tomada de: Elaboración propia. Figura 2. Ventana del shell de Python. Tomada de: Elaboración propia. Dr. Abraham Gamarra Moreno 6 Figura 3. Creación de un programa. Tomada de: Elaboración propia. Figura 4. Editor de programas en Python. Tomada de: Elaboración propia. Figura 5. Ventana para guardar un programa. Tomada de: Elaboración propia. Dr. Abraham Gamarra Moreno 7 Figura 6. Ventana del Shell de Python con resultados de la ejecución de un programa. Tomada de: Elaboración propia. Comentarios en Python Los comentarios se utilizan para documentar la lógica de un programa y tienen la siguiente sintaxis: # Comentario ””” Comentario de más de una línea ””” Los textos que están dentro del comentario, no se ejecutan; simplemente, para el programa “es como si estos textos no estuvieran ahí”. Uso de variables en Python Las variables son identificadores que cambian de valor durante la ejecución de un programa. Un ejemplo del uso de variables se puede ver en el cálculo del área de un rectángulo: a = b* h. Las variables en la fórmula son: 1) a, que almacena el valor del área del rectángulo. 2) b, que almacena el valor de la base del rectángulo. 3) h, que almacena el valor de la altura. Dr. Abraham Gamarra Moreno 8 Los nombres de las variables dependen del uso que se le da en una aplicación y se recomienda que esté relacionado con la tarea que realiza en esa aplicación. Por ejemplo, si mejoramos el nombre de las variables para el área del rectángulo estas podrían denominarse como: área, base y altura. Asignación de valores a las variables en Python La sintaxis para asignar valores a las variables es: Variable = valor Ejemplos: base =10 #Asigna el valor de 10 en la variable llamada base. dirección = “Paseo de la República No 3333” #Asigna el valor de la cadena “Paseo de la República No 3333” en la variable llamada dirección. Tipos de datos en Python Para programar en Python no se requiere definir el tipo de dato de una variable. La variable toma el tipo de dato del valor asignado. Según Wikipedia (2018), los tipos de datos que tiene Python se muestran en la tabla 3. Ejemplos: Mensaje = ’Hola mundo’ # La variable Mensaje tiene el tipo de dato str Velocidad = 30.5 # La variable Velocidad tiene el tipo de dato float Edad = 20 # La variable Edad tiene el tipo de dato int Operadores aritméticos Los operadores aritméticos en Python se muestran en la tabla 4 (Suárez & Suárez, 2014). Operadores de comparación o relacionales Los operadores de comparación o relacionales en Python se muestran en la tabla 5 (Suárez & Suárez, 2014). Operadores lógicos Los operadores lógicos en Python se muestran en la tabla 6 (Suárez & Suárez, 2014). Dr. Abraham Gamarra Moreno 9 Tabla 3 Tipos de datos en Python. Tomada de: Wikipedia. (30 de https://es.wikipedia.org/wiki/Python. Abril de 2018). Python. Obtenido de es.wikipedia.org: Tabla 4 Operadores aritméticos. Operador + * / ** // % Descripción Suma Resta Multiplicación División Potenciación División, se obtiene la parte entera del cociente División, se obtiene el resto de la división Tomada de: Suárez, A., & Suárez, A. (30 de Enero de 2014). Python 3 para impacientes. Obtenido de python-paraimpacientes.blogspot.pe: https://python-para-impacientes.blogspot.pe/2014/01/operadores.html. Tabla 5 Operadores de comparación o relacionales. Operador < > <= >= == != Descripción Menor que Mayor que Menor o igual que Mayor o igual que Igual a Distinto de Tomada de: Suárez, A., & Suárez, A. (30 de Enero de 2014). Python 3 para impacientes. Obtenido de python-paraimpacientes.blogspot.pe: https://python-para-impacientes.blogspot.pe/2014/01/operadores.html. Dr. Abraham Gamarra Moreno 10 Tabla 6 Operadores lógicos. Operador and or not Descripción Y O NO Tomada de: Suárez, A., & Suárez, A. (30 de Enero de 2014). Python 3 para impacientes. Obtenido de python-paraimpacientes.blogspot.pe: https://python-para-impacientes.blogspot.pe/2014/01/operadores.html. Expresiones en Python Una expresión es una combinación de constantes, variables y operadores; agrupados por paréntesis. Ejemplos: area_triangulo = b * h / 2 # La expresión es b * h / 2 e = v * t # La expresión es v * t Salida en Python Para mostrar el resultado de la evaluación de una expresión en pantalla se usa la función print(). El formato de print es: print (expresión1, expresión2, … , expresiónn) Ejemplo: Para probar la función print() escribimos las siguientes líneas de código en la ventana de edición IDLE y lo grabamos con el nombre ejemploprint.py (ver figura 7). Figura 7. Código fuente en Python utilizando print(). Tomada de: Elaboración propia. Los resultados de la ejecución del programa, se muestra en la figura 8. Dr. Abraham Gamarra Moreno 11 Figura 8. Resultados de la ejecución del programa ejemploprint.py. Tomada de: Elaboración propia. En la figura 8 los resultados muestran que los textos que van entre las comillas dobles o comillas simples, se imprimen con el mismo contenido. Los números que no tienen operadores aritméticos que los modifiquen, también se imprimen con el mismo contenido; en cambio sí una expresión está dentro de la función print(), primero se evalúa y luego se imprime el resultado. Entrada en Python El ingreso de los datos se realiza utilizando la función input(). El formato básico de input() es: Variable=tipo(input(‘Texto’)) Ejemplos: nombre=input(‘Ingrese su nombre’) La instrucción permite mostrar el mensaje “ingrese su nombre” (sin las comillas) y queda a la espera del ingreso por teclado del valor a asignar a la variable nombre. edad=int(input(‘Ingrese su edad’)) La instrucción permite mostrar el mensaje “ingrese su edad” (sin las comillas) y estará a la espera del ingreso por teclado del valor a asignar a la variable edad. El valor ingresado se convierte a entero. 3. Estructuras secuenciales Una estructura secuencial ejecuta las instrucciones una detrás de otra, y tiene la siguiente sintaxis: Instrucción 1 Instrucción 2 Instrucción 3 … Instrucción n Dr. Abraham Gamarra Moreno 12 El diagrama de flujo de una estructura secuencial se muestra en la figura 9. Figura 9. Estructura secuencial. Tomada de: Elaboración propia. Ejemplo: Elaborar un programa que permita calcular el área de un triángulo. Solución: 1. Definición o análisis del problema. El área de un triángulo se define con la siguiente fórmula: area_triangulo=base*altura/2. 2. Diseño del algoritmo. Ver la figura 10. Dr. Abraham Gamarra Moreno 13 Figura 10. Estructura secuencial para calcular el área de un triángulo. Tomada de: Elaboración propia. 3. Transformación del algoritmo en un programa. El programa en Python es: base=float(input('Ingrese base: ')) altura=float(input('Ingrese altura: ')) area_triangulo=base*altura/2 print('El área es: ',area_triangulo) 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese base: 4 Ingrese altura: 5 El área es: 10.0 Los valores que se ingresaron por teclado son 4 y 5. Dr. Abraham Gamarra Moreno 14 4. Lectura seleccionada No 1 Fundamentos de Python Complemente el conocimiento sobre el lenguaje de programación Python a través de la lectura de los siguientes ítems: Introducción al lenguaje – Aprende a programar en Python Hola mundo! – primer programa en Python Tipos de datos y variables en Python Operadores básicos de Python La lectura se encuentra en la siguiente URL: http://codigoprogramacion.com/python#.WwV7D-4vzIU Dr. Abraham Gamarra Moreno 15 Tema n° 2: Fundamentos de Programación: estructuras condicionales, estructuras repetitivas y funciones La potencialidad de los programas en la solución de problemas, se logra haciendo que estos tomen sus propias decisiones y repitan instrucciones cuando se necesite. Además, se mejora el diseño de un programa cuando se divide en subprogramas. En este ítem se desarrolla las estructuras secuenciales, estructuras repetitivas y funciones en Python. 1. Estructuras condicionales La sentencia if La sentencia if evalúa la condición y si el valor es verdadero se realiza la instrucción; sino no realiza nada (figura 11). Figura 11. Sentencia if. Tomada de: Elaboración propia. La sintaxis en Python es: If condición: instrucción En Python la sintaxis exige que exista un tabulador delante de la instrucción para que sea ejecutado cuando la condición sea verdadera. Ejemplo: Realizar un programa que permita leer un número e imprima su valor absoluto. Solución Dr. Abraham Gamarra Moreno 16 1. Definición o análisis del problema. El valor absoluto de un número es el valor positivo de este. Si el número es negativo se debe multiplicar por -1 para obtener su valor positivo. 2. Diseño del algoritmo. Ver figura 12. F V Figura 12. Sentencia if para obtener el valor absoluto de un número. Tomada de: Elaboración propia. 3. Transformación del algoritmo en un programa. El programa en Python es: num=float(input('Ingrese número: ')) if num<0 : num=num*-1 print('El valor absoluto es: ',num) El cambio del valor negativo de la variable num se realiza con la instrucción: num=num*-1 Dr. Abraham Gamarra Moreno 17 En la parte derecha de la instrucción se visualiza que el valor que tiene la variable num se multiplica por -1 y este resultado se almacena como nuevo valor de num. 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese número: -5 El valor absoluto es: 5.0 Ingrese número: 10 El valor absoluto es: 10.0 La sentencia if … else La sentencia if … else evalúa la condición y si el valor es verdadero se realiza la instrucción1; sino realiza la instrucción2 (figura 13). Figura 13. Sentencia if … else. Tomada de: Elaboración propia. La sintaxis en Python es: If condición: Instrucción1 else: Instrucción2 Dr. Abraham Gamarra Moreno 18 En Python la sintaxis exige que exista un tabulador delante de la instrucción1 para que sea ejecutado cuando la condición sea verdadera y también exige que exista un tabulador delante de la instrucción2 para que se ejecute cuando la condición sea falsa. Ejemplo: Realizar un programa que permita leer un número e imprima si el número es par o impar. Solución 1. Definición o análisis del problema. Un número es par cuando es divisible entre 2, es decir al dividir el número entre 2 se debe obtener un residuo igual 0. Si la división entre 2 no da un resto de 0 entonces es impar 2. Diseño del algoritmo. Ver figura 14. 3. Transformación del algoritmo en un programa. El programa en Python es: num=float(input('Ingrese número: ')) if num % 2 == 0 : print('Es par') else : print('Es impar') En la expresión num%2==0, se obtiene el resto de la división entre 2 y se verifica si es igual a 0. Si esta expresión es verdadera imprime “Es par”, sino imprime “Es impar”. 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese número: 6 Es par Ingrese número: 9 Es impar Dr. Abraham Gamarra Moreno 19 Figura 14. Sentencia if … else para mostrar si un número es par o impar. Tomada de: Elaboración propia. La sentencia elif La sentencia elif sustituye a un par else if. Ejemplo: Realizar un programa que permita leer un número del 1 al 7 e imprima el nombre del día de la semana. Solución 1. Definición o análisis del problema. La equivalencia de los días de la semana es: 1 para domingo, 2 para el lunes y así sucesivamente hasta que al 7 le corresponde sábado. Se debe leer el número del día de la semana y mostrar su equivalente. 2. Diseño del algoritmo. Ver figura 15. Dr. Abraham Gamarra Moreno 20 Figura 15. Uso de elif para mostrar el nombre del día de la semana ingresado en números. Tomada de: Elaboración propia. 3. Transformación del algoritmo en un programa. El programa en Python es: numdia=int(input("Ingrese el día de la semana en números: ")) Dr. Abraham Gamarra Moreno 21 if numdia==1: nom="Domingo" elif numdia==2: nom="Lunes" elif numdia==3: nom="Martes" elif numdia==4: nom="Miércoles" elif numdia==5: nom="Jueves" elif numdia==6: nom="Viernes" elif numdia==7: nom="Sábado" print(nom) El programa imprime el día en letras de acuerdo al número ingresado. 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese el día de la semana en números: 1 Domingo Ingrese el día de la semana en números: 5 Jueves 2. Estructuras repetitivas En las estructuras repetitivas es común utilizar variables que tengan un comportamiento como un contador y también como acumulador. Contador Esta variable modifica su valor en una cantidad constante. Un contador tiene la siguiente forma: Dr. Abraham Gamarra Moreno 22 variable=variable operador constante Ejemplos: x=x+5 Al valor anterior de x se le suma 5 unidades y se almacena este resultado en x. El efecto que se tiene al utilizar esta expresión es incrementar x en 5 unidades. num=num*3 Al valor anterior de num se le multiplica por 3 unidades y se almacena este resultado en num. Si se desea generar los números del 1 al 4, se debe realizar las siguientes instrucciones: n=0 n=n+1 n=n+1 n=n+1 n=n+1 El código anterior no es óptimo, debido a que la instrucción n=n+1 se escribe varias veces. Para mejorar esta situación se debe utilizar una sentencia repetitiva que permita ejecutar n=n+1 varias veces, escribiéndolo una sola vez. Acumulador Es una variable que modifica su valor en una cantidad variable. Un acumulador tiene la siguiente forma: variable1=variable1 operador variable2 Ejemplo Se puede usar s = s + n Las líneas de código que se listan a continuación permiten realizar la suma desde el 1 hasta el 4: 1+2+3+4. La variable n genera los números desde el 1 hasta al 4 y la variable s guarda la suma acumulada de cada término. n=1 s=0 s=s+n # s=0+1 s=1 Dr. Abraham Gamarra Moreno 23 n=n+1 # n=1+1 n=2 s=s+n # s=1+2 s=3 n=n+1 # n=2+1 n=3 s=s+n # s=3+3 s=6 n=n+1 # n=3+1 n=4 s=s+n # s=6+4 s=10 Se debe notar que el valor de s almacena al final el valor de 10 que es la suma acumulada y en cada incremento de n, s va guardando la suma acumulado hasta el valor de n. Otra vez tenemos que esta forma de hallar la suma no es la más adecuada, debido a que la instrucción n = n + 1 y s = s + n se escribe varias veces. Se recomienda otra vez ejecutar estas dos instrucciones en un ciclo repetitivo. Sentencia repetitiva for El diagrama de flujo de la sentencia for se muestra en la figura 16: Figura 16. Diagrama de flujo de la sentencia for. Tomada de: Elaboración propia. Donde: variable, es la variable que almacenará los valores generados en cada iteración. valini, es el valor inicial de variable. valfin, es el valor final de variable. Dr. Abraham Gamarra Moreno 24 inc, es el valor en el que se incrementa o disminuye variable. La sintaxis de la sentencia for es: for variable in secuencia : instrucción Una secuencia está formada por una lista, cadena, rango, etc. La sentencia for ejecuta la instrucción tantas veces se pueda asignar un valor a variable. Ejemplo: Realizar un programa que permita sumar los números consecutivos siguientes: 1+2+3+4+…+num. El valor de num es ingresado por el teclado. 1. Definición o análisis del problema. Para realizar la suma de la serie 1+2+3+4+…+num, se debe generar los números desde 1 hasta num, por lo que la variable n será el que tome los valores desde 1 hasta num variando de 1 en 1. La suma se almacenará en s, utilizando la expresión s=s+n. 2. Diseño del algoritmo. Ver figura 17. 3. Transformación del algoritmo en un programa. El programa en Python es: num=int(input("Ingrese número: ")) s=0 for n in range(1,num+1,1) : s=s+n print("La suma es: ",s) Para generar los números desde 1 hasta num se utiliza range(), el cual tiene el siguiente formato: range(valor_inicial, valor_final-incremento, incremento) Si num=4 y utilizamos range(1,num,1) se generarán los números 1,2 y 3. Se debe notar que no se genera hasta 4 porque el último valor generado es num-1, cuyo resultado es 3. Si se desea generar desde el 1 hasta el 4 se debe utilizar range(1, num+1,1). Dr. Abraham Gamarra Moreno 25 Figura 17. Uso de for para calcular la suma de 1+2+3+…+num. Tomada de: Elaboración propia. 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese número: 4 La suma es: 10 Ingrese número: 6 La suma es: 21 Dr. Abraham Gamarra Moreno 26 Sentencia repetitiva while El diagrama de flujo de la sentencia while se muestra en la figura 18. La instrucción se ejecuta mientras la condición sea verdadera. Si la condición es falsa no se ejecuta la instrucción. Figura 18. Diagrama de flujo de la sentencia while. Tomada de: Elaboración propia. La sintaxis de la sentencia while es: while condición : instrucción En la instrucción se puede utilizar break que permite salir del ciclo repetitivo. Ejemplo: Realizar nuevamente el programa que permita sumar los números consecutivos siguientes: 1+2+3+4+…+num; pero esta vez utilizando la sentencia while. El valor de num es ingresado por el teclado. 1. Definición o análisis del problema. Para realizar la suma de la serie 1+2+3+4+…+num, se debe generar los números desde 1 hasta num, por lo que la variable n será el que tome los valores desde 1 hasta num variando de 1 en 1 y utilizará la expresión n=n+1. Además, para generar la suma se utiliza la expresión s=s+n. 2. Diseño del algoritmo. Ver figura 19. Dr. Abraham Gamarra Moreno 27 Figura 19. Uso de while para calcular la suma de 1+2+3+…+num. Tomada de: Elaboración propia. 3. Transformación del algoritmo en un programa. El programa en Python es: num=int(input("Ingrese número: ")) n=0 s=0 while n<num : n=n+1 s=s+n Dr. Abraham Gamarra Moreno 28 print("La suma es: ",s) Si num=4, dentro del while n toma los valores 1, 2, 3, 4 y 5; sino que la última vez cuando n es igual a 5, la condición 5<4 (n<num) será falsa.. 4. Ejecución y validación del programa. La ejecución muestra la siguiente salida Ingrese número: 4 La suma es: 10 Ingrese número: 6 La suma es: 21 3. Funciones Uso básico de funciones Una función es la agrupación de código que realiza una tarea específica y puede invocarse muchas veces. La sintaxis de la definición en Python es: def nombre_función(lista_parámetros) : instrucción 1 instrucción 2 return expresión La lista de parámetros es opcional, así como también la instrucción return expresión. El uso de return expresión, permite devolver valores a través de una función. La sintaxis del llamado a una función es: nombre_función(parámetros) Si la función devuelve un valor se debe almacenar en una variable o se debe utilizar el valor devuelto en una instrucción de impresión o en una expresión. Ejemplo: Realizar una función que calcule la hipotenusa de un triángulo rectángulo. Solución: El programa es: Dr. Abraham Gamarra Moreno 29 def calcular_hipotenusa (c1,c2) : h=(c1**2+c2**2)**(1/2) return h cateto1=float(input("Ingrese primer cateto: ")) cateto2=float(input("Ingrese segundo cateto: ")) hipotenusa=calcular_hipotenusa(cateto1,cateto2) print(" La hipotenusa es: ", hipotenusa) La salida del programa es: Ingrese primer cateto: 3 Ingrese segundo cateto: 4 La hipotenusa es: 5.0 Ejemplo: Realizar una función que calcule la hipotenusa de un triángulo rectángulo. La función no debe utilizar return. Solución: El programa es: def calcular_hipotenusa (c1,c2) : h=(c1**2+c2**2)**(1/2) print(" La hipotenusa es: ", h) cateto1=float(input("Ingrese primer cateto: ")) cateto2=float(input("Ingrese segundo cateto: ")) hipotenusa=calcular_hipotenusa(cateto1,cateto2) La salida del programa es: Ingrese primer cateto: 3 Ingrese segundo cateto: 4 La hipotenusa es: 5.0 4. Lectura seleccionada No 2 Fundamentos de Python Complemente el conocimiento sobre el lenguaje de programación Python a través de la lectura de los siguientes ítems: Condicionales if y else en Python Ciclo For en Python Ciclo while en Python La lectura se encuentra en la siguiente URL: Dr. Abraham Gamarra Moreno 30 http://codigoprogramacion.com/python#.WwV7D-4vzIU Dr. Abraham Gamarra Moreno 31 De la teoría a la práctica Un matemático está intentando escribir un programa que calcule el producto de dos números naturales mediante el "algoritmo ruso del producto". El algoritmo consiste en duplicar el primer factor y tomar la parte entera del cociente del segundo factor entre 2. Si el segundo factor es impar se acumula el primer factor donde se ha de obtener el resultado. El proceso termina cuando el segundo factor sea cero. PRIMER FACTOR SEGUNDO FACTOR ACUMULADOR 30 15 30 60 7 90 120 3 210 240 1 450 480 0 450 Se solicita que usted le ayude a encontrar el programa. ¿Cómo lo haría? Dr. Abraham Gamarra Moreno 32 Glosario Programa Conjunto de instrucciones que se ejecutan en un computador u otro dispositivo. Tipo de dato Término utilizado en los lenguajes de programación para identificar el valor almacenado un identificador. Sintaxis Regla gramatical que tiene una instrucción.. Instrucción Orden que se entrega a un programa y su contenido depende del lenguaje de programación. En este manual una instrucción puede tomar la forma de una sentencia. Condición Una condición es una expresión que una vez evaluada devuelve un valor de verdadero o falso. Estructura condicional Es una estructura que permite ejecutar una instrucción u otra de acuerdo al resultado de una condición. Estructura repetitiva Es una estructura que permite repetir cero, una o más veces una instrucción de acuerdo al resultado de una condición. Subprograma Es la agrupación del código de un programa utilizando una función. Dr. Abraham Gamarra Moreno 33 Bibliografía Python Software Foundation. (01 de Abril de 2018). Python. Obtenido de python.org: https://www.python.org/ Cairó, O. (2006). fundamentos de programación, Piensa en C. México D.F.: Prentice Hall. Coutinho, N. (2016). Introducción a la programación con Python. Sao Paulo: Novatec Editora Ltda. Dale, N., & Lewis, J. (2016). Computer Science Illuminated. Burlington: Jones & Bartlett Learning. Forouzan, B. (2003). Introducción a la ciencia de la computación. México D.F.: International Thomson Editores. Joyanes, L. (2008). Fundamentos de Programación. Madrid: McGraw-Hill. Joyanes, L. (2013). Fundamentos generales de programación. México D.F.: McGraw-Hill. Suárez, A., & Suárez, A. (30 de Enero de 2014). Python 3 para impacientes. Obtenido de python-paraimpacientes.blogspot.pe: https://python-para-impacientes.blogspot.pe/2014/01/operadores.html TIOBE. (10 de Abril de 2018). TIOBE Index for April 2018. Obtenido de tiobe.com: https://www.tiobe.com/tiobe-index/ Wikipedia. (30 de Abril de 2018). Python. Obtenido de es.wikipedia.org: https://es.wikipedia.org/wiki/Python Dr. Abraham Gamarra Moreno 34