Ejercicios en Python
Ejercicios en Python
Ejercicio 1
#! /usr/bin/env python
# -*- coding: utf-8 -*def max (n1, n2):
if n1 < n2:
print n2
elif n2 < n1:
print n1
else:
print "Son iguales"
Aclaro que uso el print para llamar a la funcin de la manera max(8, 5).
Tambin se puede usar return.
Ejercicio 2
#! /usr/bin/env python
# -*- coding: utf-8 -*def max_de_tres (n1, n2, n3):
if n1 > n2 and n1 > n3:
print n1
elif n2 > n1 and n2 > n3:
print n2
elif n3 > n1 and n3 > n2:
print n3
else:
print "Son iguales"
Otra vez uso el print en ves del return. Dependiendo para que lo necesitemos
se usa uno u el otro. En este caso solo quiero mostrar por pantalla cual es el
mayor de los 3 nmeros.
Ejercicio 3
#! /usr/bin/env python
# -*- coding: utf-8 -*def largo_cadena (lista):
cont = 0
for i in lista:
cont += 1
return cont
En este ejercicio utilizo return en ves de print. Para ver el resultado tendramos
que llamar la funcin de la manera: print largo_cadena ([1,2,3,4]) o
print largo_cadena ("hola")
Ejercicio 4
#! /usr/bin/env python
# -*- coding: utf-8 -*def es_vocal (x):
if x == "a" or x == "e" or x == "i" or x == "o" or x == "u":
return True
elif x == "A" or x == "E" or x == "I" or x == "O" or x == "U":
return True
else:
return False
Ejercicio 5
#! /usr/bin/env python
# -*- coding: utf-8 -*def sum (lista):
suma = 0
for i in lista:
suma += i
return suma
invertida = ""
cont = len(cadena)
indice = -1
while cont >= 1:
invertida += cadena[indice]
indice = indice + (-1)
cont -= 1
return invertida
Bueno reconozco que di muchas vueltas para resolver la palabra invertida.
Quiz ustedes tengan una solucin mas simple para los que recin se estn
iniciando. Cualquier cosa dejan un comentario y explico como funciona.
Ejercicio 7
#! /usr/bin/env python
# -*- coding: utf-8 -*def inversa (cadena):
invertida = ""
cont = len(cadena)
indice = -1
while cont >= 1:
invertida += cadena[indice]
indice = indice + (-1)
cont -= 1
return invertida
def es_palindromo (cadena):
palabra_invertida = inversa (cadena)
indice = 0
cont = 0
for i in range (len(cadena)):
if palabra_invertida[indice] == cadena[indice]:
indice += 1
cont += 1
else:
print "No es palindromo"
break
if cont == len(cadena): #Si el contador = a la cantidad de letras de la
cadena
print "Es palindromo" # es porque recorri todo el ciclo for y todas las
# letras son iguales
Como dije en el ejercicio anterior yo lo pens as, pero deben haber formas mas
fciles de resolverlo.Yo utilizo los conocimientos que hasta la fecha tengo sobre
python.
Lo que hago en este ejercicio es utilizar la funcin del ejercicio anterior
(palabra invertida) para poder compararla con la cadena que nosotros
deseemos.
Ejercicio 8
#! /usr/bin/env python
# -*- coding: utf-8 -*def superposicion (lista1, lista2):
for i in lista1:
for x in lista2:
if i == x:
return True
return False
En esta funcin lo que hacemos es comparar dos listas.
Ejercicio 9
#! /usr/bin/env python
# -*- coding: utf-8 -*def generar_n_caracteres (n, caracter):
print n * caracter
Ejercicio 10
#! /usr/bin/env python
# -*- coding: utf-8 -*def procedimiento (lista):
for i in lista:
print i * "x"
Estara bueno que dejen sus soluciones para comparar ac, o en la entrada
donde estn propuestos los ejercicios.
1.- Crear un algoritmo que escriba "Hola" cinco veces.
// 1.- Crear un algoritmo que escriba "Hola" cinco veces.
Proceso Resuelto01
Para x <- 1 Hasta 5 Hacer
Escribir "Hola";
FinPara
FinProceso
2.- Crear un algoritmo que pida al usuario un nmero y le diga si es positivo,
negativo o cero.
// 2.- Crear un algoritmo que pida al usuario un numero y le diga si es positivo,
negativo o cero.
Proceso Resuelto02
Escribir "Dime un numero";
Leer x;
Si x > 0 Entonces
Escribir "Es positivo";
Sino
Si x < 0 Entonces
Escribir "Es negativo";
Sino
Escribir "Es cero";
FinSi
FinSi
FinProceso
3.- Crear un algoritmo que pida al usuario 5 datos y muestre su suma.
// 3.- Crear un algoritmo que pida al usuario 5 datos y muestre su suma.
// Forma (a), sin usar matrices
Proceso Resuelto03
suma <- 0
Para x <- 1 Hasta 5 Hacer
Escribir "Dime un dato";
Leer x;
suma <- suma + x;
FinPara
Escribir "Su suma es ", suma;
FinProceso
o de forma alternativa, usando matrices:
// 3.- Crear un algoritmo que pida al usuario 5 datos y muestre su suma.
// Forma (b), usando matrices
Proceso Resuelto03
Dimension dato[5]
Para x <- 1 Hasta 5 Hacer
Escribir "Dime un dato";
Leer dato[x];
FinPara
suma <- 0
Para x <- 1 Hasta 5 Hacer
suma <- suma + dato[x];
FinPara
Escribir "Su suma es ", suma;
FinProceso
4.- Crear un algoritmo que calcule la raz cuadrada del nmero que introduzca
el usuario. Si se introduce un nmero negativo, debe mostrar un mensaje de
error y volver a pedirlo (tantas veces como sea necesario).
// 4.- Crear un algoritmo que calcule la raz cuadrada del nmero
// que introduzca el usuario. Si se introduce un nmero negativo,
// debe mostrar un mensaje de error y volver a pedirlo
// (tantas veces como sea necesario).
Proceso Resuelto04
Repetir
Escribir "Dime un numero";
Leer x;
Si x < 0 Entonces
Escribir "No puede ser negativo";
FinSi
Hasta Que x >= 0
Escribir "Su raiz es ", rc(x);
FinProceso
5.- Crear un algoritmo que pida al usuario un nmero y un smbolo, y dibuje un
cuadrado usando ese smbolo. El cuadrado tendr el tamao que ha indicado el
usuario.
(No funcionar correctamente en versiones de PseInt anteriores a agosto de
2011)
// 5.- Crear un algoritmo que pida al usuario un nmero y un smbolo,
// y dibuje un cuadrado usando ese smbolo. El cuadrado tendr el tamao
if dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)
Aprovechando que un nmero distinto de cero se considera True, tambin se
podra escribir:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if dividendo % divisor:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)
else:
print("La divisin es exacta. Cociente:", dividendo // divisor)
Pero si se quiere tener en cuenta que no se puede dividir por cero, no se
pueden utilizar tres sentencias condicionales independientes. Se podran
utilizar sentencias anidadas:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if divisor == 0:
print("No se puede dividir por 0")
else:
if dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)
... o sentencias condicionales encadenadas:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if divisor == 0:
print("No se puede dividir por 0")
elif dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)
if mayor % menor:
print(mayor, "no es mltiplo de", menor)
else:
print(mayor, "es mltiplo de", menor)
if ... elif ... else ... 05
En este ejercicio unas situaciones incluyen a otras (el caso "tres valores
iguales" es un caso particular del caso "dos valores iguales"). En esos casos, el
orden en que se comprueban las situaciones hace que las expresiones sean
ms o menos complicadas.
En el siguiente programa se trata primero el caso ms complicado (dos
nmeros iguales), por lo que la primera condicin es complicada. Hay que
comprobar todos los casos posibles (que cualquier pareja de valores sean
iguales y que el tercer nmero sea distinto). La condicin est escrita entre
parntesis porque ocupa ms de un lnea.
print("Comparador de tres nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
numero3 = int(input("Escriba otro nmero ms: "))
if (numero1 == numero2 != numero3 or numero1 == numero3 != numero2 or
numero2 == numero3 != numero1):
print("Ha escrito uno de los nmeros dos veces.")
elif numero1 == numero2 == numero3:
print("Ha escrito tres veces el mismo nmero.")
else:
print("Los tres nmeros que ha escrito son distintos.")
En el siguiente programa el caso ms complicado (dos nmeros iguales) se
deja para el final, para no tener que escribir la condicin de ese caso
print("Comparador de tres nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
numero3 = int(input("Escriba otro nmero ms: "))
if numero1 != numero2 and numero1 != numero3 and numero2 != numero3:
print("Los tres nmeros que ha escrito son distintos.")
elif numero1 == numero2 == numero3:
print("Ha escrito tres veces el mismo nmero.")
else:
print("Ha escrito uno de los nmeros dos veces.")
print(resto, "cm")