









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
Este documento contiene una serie de ejercicios de programación en python que cubren temas como la manipulación de cadenas de texto, el cálculo de sumas y divisores, la generación de patrones geométricos, la búsqueda de elementos en secuencias y la implementación de algoritmos matemáticos. Los ejercicios están organizados por nivel de dificultad y van desde problemas básicos hasta problemas más complejos que requieren un mayor dominio de las estructuras de datos y los conceptos de programación. Cada ejercicio incluye una descripción detallada del problema, ejemplos de entrada y salida, y en algunos casos, pistas o sugerencias para su resolución. Este material puede ser útil para estudiantes de programación que deseen practicar y mejorar sus habilidades en python, así como para docentes que busquen recursos para sus clases de introducción a la programación.
Tipo: Esquemas y mapas conceptuales
1 / 17
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










- 28 de octubre de EEBE Ciència de Computadors separa('Esto es una FRASE') ('eoeuaae', 'stsnfrs') separa('Prueba DE frase') ('ueaeae', 'prbdfrs')
Diseña una función sumacifras(n) que devuelva la suma de los dígitos del número n. Utilizar las funciones str(n), int(s) y len(s) para ésta función Entrada: La función recibe un valor numérico Salida: la suma de sus cifras Ejemplos:
sumacifras(1234) 10 sumacifras(2654) 17 sumacifras(3472) 16
Diseña una función AgrupaLetras(s) que reciba un string s compuesto por solamente 3 letras distintas A, B, C repetidas en cualquier orden, y retorne un string donde todas las A estén juntas,a continuación todas las B y seguidamente todas las C. Entrada: La función recibe un string s Salida: un string con las letras agrupadas Ejemplos:
AgrupaLetras('ABCBCBACBACBACBBCA') 'AAAAABBBBBBBCCCCCC'
Diseña una función c1(n) que reciba un número natural n y escriba un cuadrado relleno con tantos asteriscos (*) de lado como indique el número n.
Entrada: La función recibe un int n Salida: No hay salida Ejemplos:
c1(5)
Diseña una función c2(n)que reciba un número entero y escriba un cuadrado (hueco) con tantos asteriscos (*) de lado como indique el número n.
Entrada: La función recibe un int n Salida: No hay salida Ejemplos:
c2(5)
Diseña una función invierte(s)que reciba una cadena s y devuelva la misma cadena pero con los caracteres invertidos
Entrada: La función recibe una cadena de caracteres s Salida: Devuelve una cadena de caracteres Ejemplos:
invierte('Esto es una cadena') 'anedac anu se otsE'
Diseña una función cuenta(s,l)que reciba una cadena de caracteres s y un carácter l y devuelva cuantas veces aparece el carácter l en la cadena s
Entrada: La función recibe una cadena de caracteres s y un carácter l Salida: devuelve un entero n Ejemplos:
cuenta('ndzobuqiakbfydacnfyu','z') 1 cuenta('djbealtpcgucfnmgdxyp','d') 2 cuenta('fxofwyqxhtxckoayvxvp','f') 2
Diseña una función contar_la(s)que reciba una cadena s y devuelva cuántas veces aparece el string ′la′^ en la cadena s
Entrada: La función recibe una cadena s Salida: devuelve un entero Ejemplos:
contar_la("") 0 contar_la("hola") 1
Si el carácter es una ′o′^ se substituye por un ′ 0 ′ Si el carácter es un espacio se substituye por un ′_′ la clave acabará siempre con un ′∗)′ NO USAR LA FUNCION a.replace() Entrada: La función recibe un literal Salida: devuelve un literal Ejemplos:
codifica('patata') 'Z?p4t4t4)' codifica('Murcielago') 'Z?Murc13l4g0)' codifica('Marc Fernandez') 'Z?M4rc_F3rn4nd3z*)'
Diseña una función que reciba una secuencia de caracteres en minúsculas y devuelva el carácter mayor i menor alfabéticamente. NO USAR LAS FUNCIONES max() y min() Recordar que la función a.isalpha() nos indica si el carácter a es una letra o no
Entrada: La función recibe un literal Salida: devuelve dos caracteres Ejemplos:
maxmin('buenos dias, esto es una frase de prueba') ('u', 'a') maxmin('lightroom') ('t', 'g') maxmin ('metric fluid') ('u', 'c')
Diseña una función sumacifras(n) que devuelva la suma de los dígitos del número n. Podéis usar las funciones str(n), int(s) y len(s) para ésta función Entrada: La función recibe un valor numérico Salida: la suma de sus cifras Ejemplos:
sumacifras(1234) 10 sumacifras(2654) 17 sumacifras(3472) 16
Diseña una función divisores(n) que reciba un entero n y devuelve cuantos divisores tiene, ex- cepto el 1 y él mismo.
Entrada: un valor entero n Salida: un entero indicando el numero de divisores Ejemplos:
divisores(12) 4 divisores(7) 0 divisores(-5) 0
Diseña una función serie(n) que dado un natural n calcule la serie con un numero n de términos:
serie(n) =
∑^ i=n
i=
i^2
y devuelva su valor ajustado a la milésima utilizando la función predenida round(value, digits)
Entrada: La función recibe un natural n Salida: El valor de la serie ajustado a la milésima (round(x, 3)) Ejemplos:
serie(20)
serie(100)
serie(2000)
Diseña una función contar_palabras(s) que recibe un texto s y devuelve cuantas palabras tiene contando el número de espacios que hay entre las palabras y sumándoles una unidad. El pro- grama deberá comprobar además si hay más de un espacio seguido para no contar palabras de más
Entrada: una variable string s Salida: un entero Ejemplos:
contar_palabras("uno dos tres") 3 contar_palabras("diez nueve ocho siete seis")
fibonacci(3) '1, 1, 2' fibonacci(9) '1, 1, 2, 3, 5, 8, 13, 21, 34' fibonacci(5) '1, 1, 2, 3, 5' fibonacci(12) '1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144'
Tenemos una máquina primitiva que solamente es capaz de incrementar las variables en una unidad (+= 1). Diseña una función sumainc(a,b) que reciba dos números naturales a y b y retorne su suma usando únicamente comparaciones e incrementos de uno en uno.
Entrada: La función recibe dos valores enteros positivos a y b Salida: La suma entre a y b Ejemplos:
sumainc(7,9) 16 sumainc(7,0) 7 sumainc(2,8) 10
Tenemos una máquina primitiva que solamente es capaz de sumar valores. Diseña una función mult_con_suma(a,b) que reciba dos números enteros a y b tanto positivos como negativos y retorne su multiplicación usando únicamente el operador de suma.
Entrada: La función recibe dos valores enteros a y b Salida: La multiplicación entre a y b Ejemplos:
mult_con_suma(8,6) 48 mult_con_suma(-3, -6) 18 mult_con_suma(9, -6)
mult_con_suma(-6, 4)
mult_con_suma(9, 0) 0 mult_con_suma(0, 7) 0
Diseña una función pot(x,y) que reciba dos números enteros x e y positivos o negativos y es- criba en pantalla el resultado de calcular la potencia xy^ utilizando el producto o la división únicamente. Por ejemplo, 23 = 2 ∗ 2 ∗ 2 = 8 o 2 −^3 = 1/ 2 ∗ 1 / 2 ∗ 1 / 2
Entrada: La función recibe dos valores x e y Salida: El resultado de multiplicar x tantas veces como lo indica y Ejemplos:
pot(2,3) 8 pot(2,10) 1024 pot (10,-3)
Diseña una función sumadivisores(n) que reciba un numero natural n y devuelva la suma de sus divisores excepto él mismo. Entrada: La función recibe un número natural n Salida: La suma de sus divisores Ejemplos:
sumadivisores(12)
sumainc(2,8) 10 ## * Ejercicio 1.2.8 Producto con sumas Tenemos una máquina primitiva que solamente es capaz de sumar valores. Diseña una función mult_con_suma(a,b) que reciba dos números enteros a y b tanto positivos como negativos y retorne su multiplicación usando únicamente el operador de suma. Entrada: La función recibe dos valores enteros a y b Salida: La multiplicación entre a y b Ejemplos: >>> mult_con_suma(8,6) 48 >>> mult_con_suma(-3, -6) 18 >>> mult_con_suma(9, -6) - >>> mult_con_suma(-6, 4) - >>> mult_con_suma(9, 0) 0 >>> mult_con_suma(0, 7) 0 ## * Ejercicio 1.2.9 Potencia con productos Diseña una función pot(x,y) que reciba dos números enteros x e y positivos o negativos y es- criba en pantalla el resultado de calcular la potencia xy^ utilizando el producto o la división únicamente. Por ejemplo, 23 = 2 ∗ 2 ∗ 2 = 8 o 2 −^3 = 1/ 2 ∗ 1 / 2 ∗ 1 / 2 Entrada: La función recibe dos valores x e y Salida: El resultado de multiplicar x tantas veces como lo indica y Ejemplos: >>> pot(2,3) 8 >>> pot(2,10) 1024 >>> pot (10,-3) 0. ## * Ejercicio 1.2.10 suma de divisores Diseña una función sumadivisores(n) que reciba un numero natural n y devuelva la suma de sus divisores excepto él mismo. Entrada: La función recibe un número natural n Salida: La suma de sus divisores Ejemplos: >>> sumadivisores(12) 16 sumadivisores(10) 8 sumadivisores(256) 255
Diseña una función sumamult(x,y,m) que recibe dos valores enteros x e y y otro valor entero m y devuelva la suma de todos los múltiplos de m entre x e y
Entrada: tres valores enteros x, y, m Salida: un valor entero Ejemplos:
sumamult(10,20,2) 90 sumamult(10,2000,17) 117351 sumamult(10,20,100) 0 sumamult(8,34,9) 54
Diseña una función fusion(s1,s2) que reciba dos strings s 1 y s 2 y devuelva un string resultante s 3 tal que:
Diseña una función bucscacar(s, a) que recibe una cadena de caracteres s y un carácter a y devuelve la posición donde se encuentra la primera aparición del carácter a en s. Devolver F alse si no se encuentra Entrada: Una cadena de caracteres s y un carácter a Salida:Un numero entero o F alse Ejemplos:
buscacar('Esto es una frase','t') 2 buscacar('Frase de prueba','z') False
Diseña una función nbo(n) que dado un valor 0 < n < 100 devuelva el primer número de los 100 primeros números de la serie de Fibonacci que acabe en n, False si no se encuentra
Entrada:Un entero n Salida: Un entero F alse. Ejemplos:
nfibo(1) sumadivisores(10) 8 >>> sumadivisores(256) 255 ## * Ejercicio 1.2.11 Sumar los múltiplos de m entre x e y Diseña una función sumamult(x,y,m) que recibe dos valores enteros x e y y otro valor entero m y devuelva la suma de todos los múltiplos de m entre x e y Entrada: tres valores enteros x, y, m Salida: un valor entero Ejemplos: >>> sumamult(10,20,2) 90 >>> sumamult(10,2000,17) 117351 >>> sumamult(10,20,100) 0 >>> sumamult(8,34,9) 54 ## *** Ejercicio 1.2.12 Fusión de strings Diseña una función fusion(s1,s2) que reciba dos strings s 1 y s 2 y devuelva un string resultante s 3 tal que: ## 1.3. Búsquedas ## * Ejercicio 1.3.1 Donde está? Diseña una función bucscacar(s, a) que recibe una cadena de caracteres s y un carácter a y devuelve la posición donde se encuentra la primera aparición del carácter a en s. Devolver F alse si no se encuentra Entrada: Una cadena de caracteres s y un carácter a Salida:Un numero entero o F alse Ejemplos: >>> buscacar('Esto es una frase','t') 2 >>> buscacar('Frase de prueba','z') False ## ** Ejercicio 1.3.2 Un numero de Fibonacci Diseña una función nbo(n) que dado un valor 0 < n < 100 devuelva el primer número de los 100 primeros números de la serie de Fibonacci que acabe en n, False si no se encuentra Entrada:Un entero n Salida: Un entero F alse. Ejemplos: >>> nfibo(1) 21 nfibo(2) 2 nfibo(6) 10946 nfibo(12)
False
nfibo(15) False nfibo(33) 233 nfibo(26) 218922995834555169026
En un Videojuego, el personaje debe recoger monedas para poder saltar de nivel. Las acciones que puede realizar son recoger una moneda ('r'), dejar una moneda ('d') o perder todas las monedas ('p'). En el momento en que el jugador consigue un número determinado de monedas, debe subir de nivel, aunque la secuencia no se haya acabado.
Diseña una función sube_nivel(s,n) que dado un string s que representa una secuencia de acciones y un numero n mayor que cero, devuelve en qué posición de la secuencia ha conseguido las n monedas o F alse si al acabar la secuencia no lo ha conseguido. Se asume que n es siempre positivo y mayor que cero.
Entrada: Una secuencia de caracteres y un entero mayor que cero Salida: Un entero o F alse. Ejemplos:
sube_nivel('rrrrrrrrr',5) 4 sube_nivel('rdrdrd',3) False sube_nivel('rrrrrrprr',6) 5 sube_nivel('rrprrdrrrrr',4) 8 sube_nivel('',3) False sube_nivel('pppp',1) False sube_nivel('dddd',6) False sube_nivel('rddddd rrrr,4) 11
Diseña una función buscar(s,n) que dada una secuencia de números s ∈ N y un entero n de- vuelva la posición donde se encuentra la primera aparición de un múltiplo de n en la secuencia.
Entrada: Una secuencia de valores enteros y un entero Salida: un entero o F alse Ejemplos:
buscar((12, 93, 94, 23, 63, 92, 91, 95, 60, 54), 5) 7 buscar((9, 86, 86, 80, 36, 74, 6, 87, 70, 69), 17) False buscar((64, 18, 14, 42, 77, 5, 36, 3, 35, 83), 11) 4 buscar((58, 29, 1, 3, 12, 67, 93, 15, 51, 98), 2) 0 buscar((63, 96, 18, 31, 19, 67, 23, 62, 98, 89), 17) False
Diseña una función buscamult(x, y, m, n) que devuelva que valor comprendido en el intervalo [x, y] es el n − simo múltiplo de m. En caso de no existir, se devuelve F alse
Entrada: cuatro valores enteros x, y, m, n ∈ N Salida: un valor entero o F alse Ejemplos:
buscamult(98, 100, 2, 2)
Diseña una función ndmult(s,m,n) que recibe una secuencia de valores enteros s ∈ N y dos enteros m y n devuelva la posición del n-ésimo múltiplo de m que hay en la secuencia. Si no existe, devolver F alse
Entrada: Una secuencia de valores y dos enteros Salida: Un entero o F alse Ejemplos:
findmult((12, 60, 44, 65, 21, 36, 99, 88, 49, 94), 2, 7) False findmult((100, 69, 74, 37, 21, 30, 76, 26, 67, 24), 3, 3) 5 findmult((19, 79, 76, 56, 7, 83, 58, 66, 87, 10), 2, 4) 7 findmult((6, 24, 3, 19, 42, 51, 9, 81, 13, 43), 3, 1) 0 findmult((62, 89, 78, 72, 86, 70, 11, 30, 34, 73), 5, 5) False
Diseña una función creciente(s) que recibe una secuencia de valores enteros s ∈ N y devuelva T rue si la serie es creciente o F alse si no lo es. En caso de no ser creciente, devolver la posición donde la serie no crece.
Entrada: Una secuencia de valores Salida: T rue o un entero y F alse Ejemplos:
creciente((1, 2, 3, 4, 5, 6, 7)) True creciente((1, 2, 3, 4, 5, 4, 6, 7)) (False, 5) creciente((3, 8, 10, 9)) (False, 3) creciente((3, 5, 8, 13, 21, 35, 46)) True
Diseña una función supera(s,m) que recibe una secuencia de valores enteros s ∈ N y un ente- ro m y devuelva la posición en la que la suma de los elementos supera m o F alse si no lo supera.
Entrada: Una secuencia de valores enteros y un entero Salida: un entero o F alse Ejemplos:
supera((92, 46, 37, 69, 44, 6, 77, 100, 8, 77), 526) 9 supera((58, 79, 54, 55, 51, 71, 40, 17, 23, 84), 233) 3
supera((99, 34, 85, 62, 61, 90, 23, 21, 9, 28), 817) False supera((22, 87, 51, 67, 30, 69, 45, 32, 49, 44), 160) 3 supera((42, 37, 39, 92, 77, 48, 1, 51, 34, 21), 722) False