Programacion de computadora mediante PythonDescripción completa
Descripción completa
Full description
Mario Essert, Domagoj Ševerdija, Ivan Vazler Digitalni udžbenik Python - osnove - Odjel za matematiku Sveučilišta Josipa Jurja Strossmayera Osijek, 2007. Sadržaj Sadržaj 1 Python interpreter 1...
PythonDescripción completa
python programmingDescrição completa
PythonDescripción completa
PYTHON
.Descrição completa
Descripción: Python programming
python programmingFull description
htftrh
python
Python
Descrição: a very good book to learn Python as a beginner, from http://www.swaroopch.com/notes/Python
PythonDescrição completa
PythonDescripción completa
PythonFull description
Good to adquire basic Python programming skills.Full description
Ejercicios Python Los siguientes son algunos ejercicios simples para resolver en Python, más o menos ordenados con la misma estructura que el curso curso.. El resultado a cada ejercicio está enlazado desde el número de cada ejercicio. La idea es que revisen la solución luego de resolverlo por ustedes mismos, o al menos de intentar (pensando varias veces cómo resolverlo.
1. Intro
!."!. #acer un programa que muestre $#ola mundo$, y ejecutarlo para ver el mensaje en la pantalla. %&ómo lo ejecutó' %u) otras maneras ha*+a de ejecutarlo' !.". -*ra el nt)rprete nteractivo de Python, y realice algunas acciones simples. ngrese la órden help(). ngrese la órden import this. !."/. 0uscr+*ase a la lista de Python -rgentina y mande el primer mail con un $#ola mundo$. 1ás instrucciones, aqu+ aqu+.. &on)ctese por 2& al servidor irc.freenode.org, y entre al canal #pyar. -hora ya sa*e cómo pedir ayuda, 3 !."4. 2evise la documentación disponi*le en esta página. página. !."5. #acer un programa que muestre $Esto es un ca6o$. Ejecútelo. %u) sucede' !."5. #acer %&ómo lo solucionó'
2. Tipos de Datos
."!. Escri*a ."!. Escri*a un programa que muestre la siguiente 7igura3 \
| / @ @ * \"""/
.". 0iendo a8$#ola$, *8$mundo$, c89: y d8.//!45, armar y mostrar las siguientes .". 0iendo cadenas3 "Hola mundo" (usando a y b) "Holamundo" (usando a y b) "!l resultado es $" (usando c)
"!l resultado es $min (%&&'seg)" "a temperatura es &."
(usando c ambas eces)
."/. #acer un programa que le pida una cadena al usuario (usando la 7unción $ra;
es
"isa se ots!"
."4. #acer un programa que le pida un número al usuario (usando la 7unción $ra;
."5. Pedirle un número al usuario, elevarlo al cuadrado, y mostrar los d+gitos al reves y separados por espacio. Por ejemplo, si el usuario ingresa !:, la salida tiene que ser "+ &".
3. Controles de flujo
/."!. 1ostrar los números potencia de menores a !"""" de la siguiente manera3
''', '''& '''''' ...
/.". #acer un programa que le pida una cadena al usuario, y arme una triángulo creciente y decreciente con ese te=to. Por ejemplo, para el te=to $>lop$, el resultado ser+a3 l lo lop lo l
/."/. 0i listamos todos los números naturales menores a !" que son multiplos de / o 5, tenemos /, 5, ? y @. La suma de estos múltiplos es /. Encontrar y mostrar la suma de todos los multiplos de / o 5 menores a !""".
/."4. 0e escri*en todos los números enteros positivos en una lista, ordenados y empezando por el ! (en la posición ", luego se tachan todos los que tienen el d+gito @ al menos una vez, y despu)s se tachan todos los múltiplos de /. &onsiderando solamente los números no tachados, %qu) número queda en la posición un millón' /."5. Encontrar dos números A e B enteros mayores o iguales que tales que
0 1 0
2 +-+&
/."?. Escri*ir un programa que le pregunte un número al usuario. 0i el número es 5, que muestre $0uerteC$D si el número es mayor a !", que muestre $randeC$D Para los otros casos que muestre $0in suerte, 3($ /.":. Pedirle una pala*ra al usuario e indicar si es un pal+ndromo. /."9. Pedirle un te=to al usuario, y mostrar el promedio de largo (hasta dos decimales de todas las pala*ras (separando por espacio, ta*, enter, etc, no por signos de ortogra7+a de ese te=to. Por ejemplo, para el input $#ola, hermano, vine a visitarte$, la salida ser+a 5.4". /."@. Fn número pal+ndromo se lee igual en los dos sentidos. El pal+ndromo más grande 7ormado del producto de números de dos d+gitos es @""@ (@! = @@. Encontrar el pal+ndromo más grande 7ormado por el producto de dos números de tres d+gitos. /.!". Escri*ir un programa que le pregunte un número al usuario. 0i el número es 5, que muestre $0uerteC$D si el número es mayor a !", que le vuelva a pedir el número al usuarioD Para los otros casos que muestre $0in suerte, 3($ /.!!. Pedirle un te=to al usuario, y hacer una estad+stica so*re cuantas veces aparece cada caracter, mostrando el resultado de mayor a menor respetando la alineación a la derecha de los números. Por ejemplo, para $nosotros no somos como los orozco, yo los conozco, son ocho los monos$, de*er+a mostrar3 o & ,& s + n % c % m l 3 & r & 4 & y , t , h ,
4. Encapsulando código
4."!. #acer una 7unción que reci*e un número y contesta $par$ o $impar$ en 7unción de si el número es par o no. 4.". - la misma 7unción que en el punto anterior, agregarle un docstring (con prue*as incluidas, ver el módulo doctest. 4."/. #acer una 7unción que reci*e dos números y devuelve $mayor$ (si el primer número es mayor que el segundo, $menor$, o $iguales$. 4."4. #acer una 7unción que reci*e un número y contesta $primo$ o $no primo$ en 7unción de si el número es primo o no. 4."5. -l listar los primeros seis números primos (, /, 5, :, !! y !/, podemos ver que el se=to (?G primo es !/. &ual es el !""""G número' 4."?. #acer un programa que genere un número entero al azar (módulo random entre " y !""", y le vaya pidiendo al usuario que ingrese números enteros para adivinarlo. 0i el usuario ingresa un número menor que el o*jetivo, muestra $Es más altoC$D si el usuario ingresa uno mayor, muestra $Es más *ajoC$D si el usuario acierta, muestra $Hiva PythonC$, y termina. 0i el usuario no acertó en : intentos, que muestre $-lpiste perdisteC Iooo$ y termine. 4.":. #acer una 7unción que reci*a un te=to y devuelva el mismo te=to pero con cada pala*ra invertida. Por ejemplo, llamándola con $Esto es una prue*a$, de*e devolver $otsE se anu a*eurp$. 4."9. #acer una 7unción que reci*a dos pala*ras y que imprima linea por linea las primeras, segundas, etc. letras de am*as pala*ras. Por ejemplo, llamándola con $#ola$ y $mundo$, el resultado ser+a3 H o l a
m u n d o
4."@. Encuentre la cantidad de enteros entre ! J n J !": para los cuales n y nK! tienen la misma cantidad de divisores positivos enteros. Por ejemplo, !4 tiene el !, , : y !4, mientras que !5 tiene !, /, 5 y !5.
4.!". &uando en un número la di7erencia entre cada par de d+gitos consecutivos es uno, se lo llama número $step$ (como el !//4, el @9:?:9:?54, etc.. %&uántos números $step$ menores a un millón e=isten' 4.!!. Pedirle un te=to al usuario y mostrar el mismo te=to pero sin las vocales. Por ejemplo, para un input de $Bo esta*a all+$, de*er+a mostrar $B st* ll$. Ejercicios Python Macundo Iatista Iitácora de Huelo Licencia3 -tri*uciónNo &omercial .5 en)rica
Ejercicios resueltos de programación, en Python y en español, I. Hola. Este es el primero de la serie de artículos que presentaré estos días sobre una colección de ejercicios muy bsicos de programación, para resol!er con Python "o cualquier otro lenguaje#. $ecir que son muy sencillos y sir!en para a%ian&ar conocimientos bsicos de sinta'is y ra&onamiento. (i eres no!el en programación ó enPython, este post es para tí. $e lo contrario, te resultarn tri!iales los planteamientos e'puestos. )os enunciados los he obtenido del libro Esquemas Algorítmicos Fundamentales - Secuencias e Iteración, de P.C. Scholl y J.P. Peyrin, editorial asson.
E!ercicio ". Escribir un algoritmo que, para cualquier n*mero de segundos in%erior a un millón, calcule su equi!alente en días, horas, minutos y segundos. En este ejercicio tenemos que tener en cuenta que+ minuto - / segundos. hora - / minutos - 0// segundos. dia - 12 horas - 22/ minutos - 32// segundos. 4 Pedimos datos. dato - ra56input"u78*mero de segundos+ 7# 4 Hacemos un cast, con!irtiendo la cadena en un n*mero largo. dato - long"dato# 4 9omprobamos si el n*mero introducido es menor a un millón. i% dato :- //////+ print ;El n*mero debe de ser menor a //////; else+
4 $ías. ndias, au' - di!mod"dato, 32//# 4 Horas. nhoras, au' - di!mod"au', 0//# 4 "ndias, nhoras, nmin, nseg# E!ercicio #. Escribir un algoritmo que imprima el mínimo, el m'imo y la media de tres n*meros.
4 ?btenemos n*meros. numeros - @A %or i in @7primer7, 7segundo7,7tercer7A+ te'to - u7Introduce el =s n*mero+ 7 = "i# numeros.append"%loat"ra56input"te'to### 4 ?rdenamos. numeros.sort"# 4 ?btenemos m'imo y mínimo. minimo - numeros@/A ma'imo - numeros@1A 4 ?btenemos la media aritmética. media - round""numeros@/A B numeros@A B numeros@1A# C %loat"0#,0# 4 Disuali&amos resultados. cadena - u7<ínimo+ =d, <'imo+ =d,
pronombre - @7yo7,7tu7,7el7,7nosotros7,7!osotros7,7ellos7A terminaciones - 7yo7+7o7, 7tu7+7as7, 7el7+7a7, 7nosotros7+7amos7, 7!osotros7+u7is7, 7ellos7+7an7F
4 Pedimos datos. palabra - ra56input"u7Derbo regular ra. conjugación+ 7# 4 Gecorremos la tabla hashing "diccionario#, construyendo la conjugación !erbal. %or i in pronombre+ print i, palabra@/+len"palabra#1A B terminaciones@iA E!ercicio %. Escribir un algoritmo que, para un n*mero binario de 2 ci%ras, imprima su !alor en base /. (e estudiarn dos %ormas del problema seg*n la representación de los datos+ %orma + los datos son cuatro enteros "/ ó #. Por ejemplo+ ,,/,. %orma 1+ el dato es un entero cuya representación decimal con cuatro ci%ras no contenga ms que / ó + Por ejemplo+ /.
4 ?btenemos datos. nbinario - ra56input"u78*mero binario "2 ci%ras#+ 7# 4 ?btenemos los dígitos. nbinario - nbinario.split"7,7# i% len"nbinario# -- + nbinario - list"nbinario@/A# 4 Iniciali&amos algunos contadores. decimal - / potencia - / 4 )e damos la !uelta al n*mero binario. nbinario.re!erse"# 4 9alculamos el n*mero decimal, a partir del n*mero binario. %or i in nbinario+ decimal B- po5"1,potencia# i% i -- 77 else / potencia B- 4 Disuali&amos resultado. cadena - u7(u representación decimal es =d7 = "decimal# print cadena E!ercicio &. Escribir un algoritmo que decodi%ique %echas del siglo I. El dato es un entero comprendido entre /// y 01JJ. El resultado es una secuencia de caracteres+ n*mero del día dentro del mes, del mes dentro del año y del año dentro del siglo. Por ejemplo, para el dato 0/23K, el resultado es el te'to 021/3K.
4 ?btenemos dato. dato - ra56input"7Introduce dato+ 7# 4 $ecodi%icamos año dentro del siglo I. anyo - 1/// B int"dato@len"dato#1+A#
4 $ecodi%icamos mes. mes - int"dato@len"dato#2+len"dato#1A# 4 $ecodi%icamos día. dia - int"dato@+len"dato#2A# 4
4 $eclaramos datos bsicos "euros# con los que trabajar. billetes6y6monedas - @K//,1//,//,K/,1/,/,K, 1, , /.K/, /.1/, /./, /./K, /./1, /./A 4 9reamos un monedero, donde meter el dinero. monedero - @A 4 Pedimos la cantidad. dato - ra56input"u7Introducir importe "euros#+ 7# 4 Luscamos parte decimal y entera. dato - dato.split"7.7# 4 $ecimal... try+ parte6decimal - %loat"7/.7Bdato@A# e'cept+ parte6decimal - /./ 4 Entera... parte6entera - long"dato@/A# 4 Mlgoritmo de asignación de dinero. %or i in billetes6y6monedas+ 4 ?btenemos n*mero de billetes ó monedas y los guardamos. unidades, resto - di!mod"parte6entera, i# i% unidades N- /+ monedero.append""i,unidades## 4 Msignamos lo que nos queda. parte6entera - resto i% parte6decimal : /+ %or i in billetes6y6monedas+ 4 ?btenemos n*mero de monedas y los guardamos.
unidades, resto - di!mod"parte6decimal, i# i% unidades N- /+ monedero.append""i,unidades## 4 Msignamos lo que nos queda. parte6decimal - round"resto,1#
4 Disuali&amos el resultado. cadena - 77 %or i in monedero+ i% i@/A :- K+ cadena B- 7=d billeteCs de =d euros7 = "i@A,i@/A# i% i@/A O K+ cadena B- 7=d monedaCs de =s euros7 = "i@A,i@/A# cadena B- 7>n7 print cadena E!ercicio (. Escribir un algoritmo que simule el %uncionamiento de una calculadora. El dato es una serie de tres caracteres+ una ci%ra, un símbolo de operación y otra ci%ra. El resultado es el !alor de la e'presión dada. 4 Pedimos datos. dato - ra56input"u7Introduce operación+ 7# 4 Iniciali&amos resultado. resultado - / 4 (umaQ serie - dato.split"7B7# i% len"serie# -- 1+ resultado - long"serie@/A# B long"serie@A# else+ 4 GestaQ serie - dato.split"77# i% len"serie# -- 1+ resultado - long"serie@/A# long"serie@A# else+ 4
introducidos, por cuestión de simplicidad. 4 Pedimos datos. tiempo - ra56input"7Introduce tiempo+ 7# 4 ?btenemos datos. au' - tiempo.split"7,7# horas - int"au'@/A# minutos - int"au'@A# segundos - int"au'@1A# 4 Mumentamos un segundo. segundos B- 4 9asos. i% segundos N- /+ tiempo - "horas, minutos, segundos# else+ i% minutos -- KJ and horas -- 10+ tiempo - "/, /, /# else+ i% minutos -- KJ+ tiempo - "horas B , /, /# else+ tiempo - "horas, minutos B , /# 4 E imprimimos resultado "una tupla#. print tiempo E!ercicio *. Escribir una %unción que determine si una letra dada es consonante. M la %unción le %altaría controlar las letras con acentuación "tildes, diéresis, etc#. de% es6consonante"letra#+ i% letra.lo5er"# not in @7a7,7e7,7i7,7o7,7u7A+ return Srue else+ return Talse E!ercicio "+. Escribir una %unción que calcule el %actorial de un n*mero. Por ejemplo, KN - KR2R0R1R - 1/.
de% %actorial"numero#+ return i% numero O-/ else numero R %actorial"numero #
4 Para cada uno de los puntos siguientes escri*ir un programa que pida los datos necesarios y calcule el área y e . de la 7igura indicada a Fn cuadrado * Fn rectángulo c Fn triángulo d Fn c+rculo 0olucion3 a cuadrado.c
Tema 6. Funciones
1. Diseñar una función que calcule el promedio de varios números introducidos por el teclado. Ha versiones, una para un número jo de valores y otra para un número cualquiera.de valores. 2 Escriir una función que intercamie el valor de dos variales, es decir si !"# e $"% tras aplica función, por ejemplo &aciendo 'intercamiar(!,$)' se tiene que !"% e $"#. * Diseñar una función que calcule la potencia en+sima de un número, es decir que calcule X n para X, real y n entero Diseñar una función 'a-ayusculas()' que convierta una cadena de teto en mayúsculas # Diseñar dos funciones 'Euros/0esetas()' y '0esetas/Euros()' que realicen las conversiones de de forma que se puedan utiliar directamente dentro de una epresion del tipo ' 3mprimir valE Euros/0ts(valEuros )' # Diseñar una función 'Es4isiesto()' que decida si un año es isiesto o no 5 Escriir una función 'Es-ultiplo' que sirva para determinar si un número es múltiplo de otra. 6t un pro7rama que pida la anti7uedad de un traajador y calcule cuantos trienios de anti7uedad % -odulariar el pro7rama nomina1.c utiliando tres funciones. 6na para la entrada, una para los una para la salida de resultados 9olución :omina2.c ; salida de resultados para el pro7rama del ejercicio n? 1.# (terminal punto de venta)