Está en la página 1de 18

Herramientas

Estos ejercicios pueden resolverse descargando Python 3 y generando, por cada


ejercicio, un archivo con extensi�n .py y ejecut�ndolo mediante el int�rprete de
Python. Sin embargo, tambi�n es posible resolver los ejercicios en cualquier
int�rprete de Python online, sin necesidad de descargar nada, por ejemplo: Repl.it.
Cada ejercicio de esta p�gina constituye un programa.

Importante
Cuando resuelvas los ejercicios estar�s actuando como el �programador� (la persona
que crea el programa). Pero luego tendr�s que ejecutar tu c�digo y probar si
funciona correctamente, y en este caso actuar�s como el �usuario� (alguien que
utiliza el programa). No siempre el programador y el usuario son la misma persona
y, generalmente, los usuarios no conocen los detalles t�cnicos ni pueden ver el
c�digo. S�lo ver�n la salida en pantalla que les muestre el programa. Consider�
que, en cada ejecuci�n del programa, el usuario podr�a ingresar datos diferentes.
El programa deber�a funcionar de forma consistente y sin errores en todos los
casos.

Sobre los ejercicios


Junto a los ejercicios se encuentran algunos ejemplos con explicaciones, a modo de
gu�a para su resoluci�n. Adem�s, por cada ejercicio se muestra un ejemplo de salida
en pantalla indicando c�mo deber�a quedar el programa luego de su ejecuci�n. El
texto en negrita representa la salida del programa y el texto en cursiva representa
el texto ingresado por el usuario.

Estos enunciados y resoluciones fueron dise�ados con el objetivo de ayudar a


programadores principiantes a desarrollar habilidades algor�tmicas y de
razonamiento l�gico. La finalidad principal no se enfoca en la sintaxis y
herramientas concretas de Python 3, y la mayor�a de los ejercicios podr�an
resolverse con cualquier lenguaje dentro del paradigma imperativo.

Soluciones
Haciendo click sobre cada ejercicio se desplegar� su soluci�n. Es importante tener
en cuenta que, en algunos casos, es posible obtener el mismo resultado utilizando
diferentes estrategias o algoritmos. En este caso se plantea una soluci�n posible
para cada ejercicio.

Secci�n 1
Entrada/salida de datos - Variables - Tipos de datos

C�digo de ejemplo

Variable=5
variable=3
VaRiAbLe=8

#Son todas variables distintas porque Python (como muchos otros lenguajes)
distingue may�sculas y min�sculas.
C�digo de ejemplo
a=5
a=18

#a tomar� el �ltimo valor asignado (lo que tuviera guardado anteriormente la


variable, se pierde).
1
Escrib� un programa que solicite al usuario que ingrese su nombre. El nombre se
debe almacenar en una variable llamada nombre. A continuaci�n se debe mostrar en
pantalla el texto �Ahora est�s en la matrix, [usuario]�, donde �[usuario]� se
reemplazar� por el nombre que el usuario haya ingresado.

Ejemplo de ejecuci�n:

Tu nombre: Patricia
Ahora est�s en la matrix, Patricia

C�digo de ejemplo

1variable=23.95

#Arroja error porque los nombres de variables s�lo pueden comenzar con letras o
guiones bajos (_).
C�digo de ejemplo

n1=int(input())
n2=float(input())

#Sabemos que input() lee lo que el usuario escribe en el programa, pero el tipo de
eso que lee ser� siempre string. Si necesitamos que sea un n�mero debemos convertir
lo que input() devuelve. Para convertir a n�mero entero usamos int(input()) y para
convertir a n�mero con decimales usamos float(input()).
2
Escrib� un programa que solicite al usuario ingresar un n�mero con decimales y
almacenalo en una variable. A continuaci�n, el programa debe solicitar al usuario
que ingrese un n�mero entero y guardarlo en otra variable. En una tercera variable
se deber� guardar el resultado de la suma de los dos n�meros ingresados por el
usuario. Por �ltimo, se debe mostrar en pantalla el texto �El resultado de la suma
es [suma]�, donde �[suma]� se reemplazar� por el resultado de la operaci�n.

Ejemplo de ejecuci�n:

Primer n�mero: 14.2


Segundo n�mero: 19
El resultado de la suma es 33.2

3
Escrib� un programa que solicite al usuario dos n�meros y los almacene en dos
variables. En otra variable, almacen� el resultado de la suma de esos dos n�meros y
luego mostr� ese resultado en pantalla.
A continuaci�n, el programa debe solicitar al usuario que ingrese un tercer n�mero,
el cual se debe almacenar en una nueva variable. Por �ltimo, mostr� en pantalla el
resultado de la multiplicaci�n de este nuevo n�mero por el resultado de la suma
anterior.

Ejemplo de ejecuci�n:

Ingres� un n�mero: 1
Ingres� otro n�mero: 2
Suman: 3
Ingres� un nuevo n�mero: 3
Multiplicaci�n de la suma por el �ltimo n�mero: 9

C�digo de ejemplo

a=a+1
a+=1

#Las dos instrucciones de arriba son equivalentes (cualquiera de ellas hace lo


mismo: sumar 1 al valor almacenado en la variable a y reemplazar el valor anterior
de a con el nuevo resultado).
4
Escrib� un programa que solicite al usuario ingresar la cantidad de kil�metros
recorridos por una motocicleta y la cantidad de litros de combustible que consumi�
durante ese recorrido. Mostrar el consumo de combustible por kil�metro.

Ejemplo de ejecuci�n:

Kil�metros recorridos: 260


Litros de combustible gastados: 12.5
El consumo por kil�metro es de 20.8

5
Escrib� un programa que solicite al usuario el ingreso de una temperatura en escala
Fahrenheit (debe permitir decimales) y le muestre el equivalente en grados Celsius.
La f�rmula de conversi�n que se usa para este c�lculo es: _Celsius = (5/9) *
(Fahrenheit-32)_

Ejemplo de ejecuci�n:

Ingres� una temperatura expresada en Farenheit: 75


23.88888888888889

6
Escrib� un programa que solicite al usuario ingresar tres n�meros para luego
mostrarle el promedio de los tres.

Ejemplo de ejecuci�n:

Primer n�mero: 8.5


Segundo n�mero: 10
Tercer n�mero: 5.5
El promedio de los tres es 8.0

7
Escrib� un programa que solicite al usuario un n�mero y le reste el 15%,
almacenando todo en una �nica variable. A continuaci�n, mostrar el resultado final
en pantalla.

Ejemplo de ejecuci�n:

Ingres� un n�mero: 260


Descontando el 15% queda: 221.0

C�digo de ejemplo

cadena=""
cadena=cadena+"buen"
cadena=cadena+" d�a"
print(cadena)

#Cuando se utiliza el operador + en una operaci�n entre strings, se est� realizando


una concatenaci�n (uni�n de strings). La instrucci�n print mostrada arriba
imprimir� �buen d�a�.
8
Escrib� un programa que solicite al usuario el ingreso de dos palabras, las cuales
se guardar�n en dos variables distintas. A continuaci�n, almacen� en una variable
la concatenaci�n de la primera palabra, m�s un espacio, m�s la segunda palabra.
Mostr� este resultado en pantalla.

Ejemplo de ejecuci�n:

Primera palabra: derribando


Segunda palabra: muros
derribando muros

C�digo de ejemplo

frase="Estoy programando"
print(frase[0])
i=6
print(frase[i])

#El operador [ ] (corchetes) permite obtener un car�cter a partir de un string. La


posici�n del car�cter se indica entre los corchetes, ya sea ingresando directamente
el n�mero, con una variable que contenga un n�mero o con una operaci�n que de como
resultado un n�mero. Siempre, el primer car�cter de un string estar� ubicado en la
posici�n 0.
C�digo de ejemplo

frase="Estoy programando"
print(len(frase))
ultimo_caracter=frase[len(frase)-1]
print(ultimo_caracter)

#Mediante len() podemos obtener la cantidad de caracteres que contiene un string.


Este valor siempre ser� un n�mero entero (tipo int) y puede guardarse en una
variable, imprimirse, usarse en una operaci�n aritm�tica, etc.
9
Escrib� un programa que solicite al usuario el ingreso de un texto y almacene ese
texto en una variable. A continuaci�n, mostrar en pantalla la primera letra del
texto ingresado. Luego, solicitar al usuario que ingrese un n�mero positivo menor a
la cantidad de caracteres que tiene el texto que ingres� (por ejemplo, si escribi�
la palabra �HOLA�, tendr� que ser un n�mero entre 0 y 4) y almacenar este n�mero en
una variable llamada indice.
Mostrar en pantalla el car�cter del texto ubicado en la posici�n dada por indice.

Ejemplo de ejecuci�n:

Ingres� un texto: En un lugar de La Mancha, de cuyo nombre no quiero acordarme�


El car�cter en primer lugar es: E
Ingres� un n�mero positivo menor a 63
7
El car�cter en esa posici�n es: u

C�digo de ejemplo

a=10
b=4
print(a != b)

#La instrucci�n print imprimir� True, ya que el valor contenido en a es diferente


del valor contenido en b.
10
Escrib� un programa que solicite al usuario que ingrese cu�ntos shows musicales ha
visto en el �ltimo a�o y almacene ese n�mero en una variable. A continuaci�n
mostrar en pantalla un valor de verdad (True o False) que indique si el usuario ha
visto m�s de 3 shows.

Ejemplo de ejecuci�n:

Shows vistos en el �ltimo a�o: 3


False

C�digo de ejemplo

print(58273%10)
print(58273//10)

#La primera instrucci�n imprimir� el n�mero 3, ya que es el resto de la divisi�n de


58273 por 10. La segunda instrucci�n imprimir� 5827, ya que es la parte entera del
resultado de dividir 58273 por 10. Estas operaciones matem�ticas son estrategias
que se pueden utilizar para obtener partes de un n�mero.
11
Escrib� un programa que le solicite al usuario ingresar una fecha formada por 8
n�meros, donde los primeros dos representan el d�a, los siguientes dos el mes y los
�ltimos cuatro el a�o (DDMMAAAA). Este dato debe guardarse en una variable con tipo
int (n�mero entero). Finalmente, mostrar al usuario la fecha con el formato DD / MM
/ AAAA.

Ejemplo de ejecuci�n:

Fecha en formato DDMMAAAA: 16112017


16 / 11 / 2017

12
Escrib� un programa para solicitar al usuario el ingreso de un n�mero entero y que
luego imprima un valor de verdad dependiendo de si el n�mero es par o no. Recordar
que un n�mero es par si el resto, al dividirlo por 2, es 0.

Ejemplo de ejecuci�n:

N�mero entero: 7254


True

C�digo de ejemplo

a=int(input())
print(a>100 and a!=1000)

#Primero se calcular�n los valores l�gicos (True o False) de las dos comparaciones:
a > 100 y a != 1000 (lo cual depender� del n�mero guardado en la variable a). A
continuaci�n, se utilizar� la tabla de verdad de la operaci�n AND para calcular el
resultado.
13
Escrib� un programa que le solicite al usuario su edad y la guarde en una variable.
Que luego solicite la cantidad de art�culos comprados en una tienda y la guarde en
otra variable. Finalmente, mostrar en pantalla un valor de verdad (True o False)
que indique si el usuario es mayor de 18 a�os de edad y adem�s compr� m�s de 1
art�culo.

Ejemplo de ejecuci�n:

Tu edad: 32
Art�culos comprados: 1
False

14
Escrib� un programa que, dada una cadena de texto por el usuario, imprima True si
la cantidad de caracteres en la cadena es un n�mero impar, o False si no lo es.

Ejemplo de ejecuci�n:

Ingres� una frase: Era el mejor de los tiempos, era el peor de los tiempos.
True

C�digo de ejemplo

"animal" > "piedra"


"bailar� > "bebida"

#Ambas comparaciones arrojan True porque el string �animal� es menor que �piedra� y
el string �bailar� es menor que �bebida�. El orden est� dado por c�mo aparecen las
letras en el alfabeto. En el caso de �animal� y �piedra�, la �a� es menor que la
�p�. En el caso de �bailar� y �bebida�, como la primera letra es la misma se eval�a
la segunda, y en este caso �a� es menor que �e�.
15
Escrib� un programa que le pida al usuario ingresar dos palabras y las guarde en
dos variables, y que luego imprima True si la primera palabra es menor que la
segunda o False si no lo es.

Ejemplo de ejecuci�n:

Una palabra: complejidad


Otra palabra: algoritmo
False

16
Escrib� un programa para pedir al usuario su nombre y luego el nombre de otra
persona, almacenando cada nombre en una variable. Luego mostrar en pantalla un
valor de verdad que indique si: los nombres de ambas personas comienzan con la
misma letra � si terminan con la misma letra. Por ejemplo, si los nombres
ingresados son Mar�a y Marcos, se mostrar� True, ya que ambos comienzan con la
misma letra. Si los nombres son Ricardo y Gonzalo se mostrar� True, ya que ambos
terminan con la misma letra. Si los nombres son Florencia y Lautaro se mostrar�
False, ya que no coinciden ni la primera ni la �ltima letra.

Ejemplo de ejecuci�n:

Tu nombre: Alfredo
Otro nombre: Eduardo
True
Secci�n 2
Bloques - Selecci�n - Repeticiones

C�digo de ejemplo

x=10
if x!=0:
print("Hola")

#El programa anterior har� que siempre se muestre �Hola� porque la condici�n que
tiene la instrucci�n if nunca puede ser False, ya que la variable x vale 10 y 10
siempre ser� distinto de 0. Si, en lugar de asignar un valor concreto, le
solicitamos al usuario que ingrese uno y lo guardamos en x, depender� de si ese
valor es distinto de 0 o no para saber si se mostrar� la palabra �Hola� o no.
17
Escrib� un programa que, dado un n�mero entero, muestre su valor absoluto. Record�
que, para los n�meros positivos su valor absoluto es igual al n�mero (el valor
absoluto de 52 es 52), mientras que, para los negativos, su valor absoluto es el
n�mero multiplicado por -1 (el valor absoluto de -52 es 52).

Ejemplo de ejecuci�n:

N�mero: -12
Valor absoluto: 12

C�digo de ejemplo

x=int(input("N�mero:"))
if x%2==0:
print("El n�mero es par")
else:
print("El n�mero es impar")

#La instrucci�n if-else permite que se ejecute un bloque de c�digo u otro, pero
nunca ambos. En este ejemplo, si es verdad que el n�mero ingresado por el usuario
(y almacenado en la variable x) es un n�mero par (es decir, si es verdad que el
resto de la divisi�n del n�mero por 2 es 0), se imprimir� �El n�mero es par�. Si
esa condici�n es falsa (el resto de la divisi�n del n�mero por 2 no es 0), se
imprimir� �El n�mero es impar�.
18
Escrib� un programa que solicite al usuario el ingreso de dos n�meros diferentes y
muestre en pantalla al mayor de los dos.

Ejemplo de ejecuci�n:

Un n�mero: 592
Otro n�mero distinto: 1726
1726 es mayor

19
Escrib� un programa que solicite al usuario una letra y, si es una vocal, muestre
el mensaje �Es vocal�. Verificar si el usuario ingres� un string de m�s de un
car�cter y, en ese caso, informarle que no se puede procesar el dato.

Ejemplo de ejecuci�n:

Letra: o
Es vocal
20
Escrib� un programa para solicitar al usuario tres n�meros y mostrar en pantalla al
menor de los tres.

Ejemplo de ejecuci�n:

Primer n�mero: 20
Segundo n�mero: 30
Tercer n�mero: 10
Menor: 10

C�digo de ejemplo

n=int(input("N�mero:"))

if n>10 and n<20:


print("N�mero correcto")
else:
print("N�mero incorrecto")

if n<10 or n>20:
print("N�mero incorrecto")
else:
print("N�mero correcto")

#En las dos instrucciones if-else anteriores se toma como correcto a cualquier
n�mero entre 10 y 20, pero es necesario observar c�mo los operadores < y > cambian
y c�mo el operador and cambia por or para lograr el mismo objetivo.
21
Escrib� un programa que solicite ingresar un nombre de usuario y una contrase�a. Si
el nombre es �Gwenevere� y la contrase�a es �excalibur�, mostrar en pantalla
�Usuario y contrase�a correctos. Puede ingresar a Camelot�. Si el nombre o la
contrase�a no coinciden, mostrar �Acceso denegado�.

Ejemplo de ejecuci�n:

Nombre de usuario: gwen


Contrase�a: excalibur
Acceso denegado

22
Escrib� un programa que permita saber si un a�o es bisiesto. Para que un a�o sea
bisiesto debe ser divisible por 4 y no debe ser divisible por 100, excepto que
tambi�n sea divisible por 400.

Ejemplo de ejecuci�n:

A�o: 2020
Bisiesto

C�digo de ejemplo

for x in range(0,10):
print(x)

for x in range(10):
print(x)

#Las dos repeticiones anteriores imprimir�n lo mismo: los n�meros del 0 al 9. En la


primera se indica que se debe comenzar en el 0 y terminar en el 9 (el rango siempre
terminar� en el n�mero dado como final, menos 1). En la segunda, al obviar el
n�mero en que se debe comenzar, autom�ticamente se toma al 0 como inicio del rango.
Si quisi�ramos, podr�amos indicar que el rango comience en otro n�mero que no sea
el 0.
23
Escrib� un programa que le solicite al usuario un n�mero entero y muestre todos los
n�meros correlativos entre el 1 y el n�mero ingresado por el usuario.

Ejemplo de ejecuci�n:

Ingres� un n�mero: 3
1
2
3

24
Escrib� un programa que muestre la sumatoria de todos los n�meros entre el 0 y el
100.

Ejemplo de ejecuci�n:

Sumatoria: 5050

25
Escrib� un programa que, dado un n�mero por el usuario, muestre todos sus divisores
positivos. Record� que un divisor es aquel que divide al n�mero de forma exacta
(con resto 0).

Ejemplo de ejecuci�n:

N�mero: 14
Divisores:
1
2
7
14

C�digo de ejemplo

for x in "hola":
print(x)

#La repetici�n for utiliza el operador in para recorrer una secuencia. Este
operador retorna un valor l�gico: True si el primer operando est� contenido en el
segundo, False si no es as�. Es posible utilizar el operador in de forma
independiente, para saber, por ejemplo, si un string est� contenido dentro de otro:
"a" in "hola" dar� como resultado True porque el string �a� est� dentro de �hola�.
Asimismo, se puede negar el valor l�gico obtenido por la operaci�n utilizando not:
"a" not in "hola" dar� como resultado Fase porque no es verdad que el string �a� no
est� dentro de �hola�.
26
Escrib� un programa que, dada una frase por el usuario, muestre la cantidad total
de vocales (tanto may�sculas como min�sculas) que contiene.

Ejemplo de ejecuci�n:

Frase: Verde que te quiero verde


Vocales: 11
27
Escrib� un programa que muestre los primeros 10 n�meros de la sucesi�n de
Fibonacci. La sucesi�n comienza con los n�meros 0 y 1 y, a partir de �stos, cada
elemento es la suma de los dos n�meros anteriores en la secuencia: 0, 1, 1, 2, 3,
5, 8, 13, 21, 34, 55�

Ejemplo de ejecuci�n:

0
1
1
2
3
5
8
13
21
34

28
Escrib� un programa que, dado un n�mero entero positivo, calcule y muestre su
factorial. El factorial de un n�mero se obtiene multiplicando todos los n�meros
enteros positivos que hay entre el 1 y ese n�mero. El factorial de 0 es 1.

Ejemplo de ejecuci�n:

N�mero: 7
Factorial: 5040

29
Escrib� un programa que permita al usuario ingresar 6 n�meros enteros, que pueden
ser positivos o negativos. Al finalizar, mostrar la sumatoria de los n�meros
negativos y el promedio de los positivos. No olvides que no es posible dividir por
cero, por lo que es necesario evitar que el programa arroje un error si no se
ingresaron n�meros positivos.

Ejemplo de ejecuci�n:

N�mero: 15
N�mero: -12
N�mero: 5
N�mero: 10
N�mero: -3
N�mero: 9
Sumatoria de los negativos: -15
Promedio de los positivos: 9.75

C�digo de ejemplo

cadena=input("Frase:")
for caracter in cadena:
print(caracter)

#Cuando se recorre un string mediante un for que itera por cada uno de sus
caracteres, asignar un nuevo valor a la variable iteradora (en este caso, caracter)
no modifica el string original. Esto es, la instrucci�n caracter="a" dentro del for
no modificar�a en nada el string almacenado en la variable cadena.
30
Escrib� un programa que permita al usuario ingresar una frase y luego un car�cter
(string de longitud 1) y luego muestre la frase ingresada, pero con todas las
ocurrencias del car�cter indicado por el usuario reemplazadas por �*�.

Ejemplo de ejecuci�n:

Frase: Aqu� me pongo a cantar al comp�s de la vig�ela_


Car�cter: o
Aqu� me p*ng* a cantar al c*mp�s de la vig�ela

31
Escrib� un programa que, dada una frase por el usuario, la muestre invertida, sin
utilizar una rebanada con paso negativo.

Ejemplo de ejecuci�n:

Frase: Sab�a qui�n era esta ma�ana, pero he cambiado varias veces desde entonces
secnotne edsed secev sairav odaibmac eh orep ,ana�am atse are n�iuq a�baS

C�digo de ejemplo

suma=0
numero=int(input("N�mero:"))
while numero != 0:
suma=suma+numero
numero=int(input("N�mero:"))
print("Suma de todos los n�meros ingresados:", suma)

#Una repetici�n while necesita una condici�n (en este ejemplo: numero!=0), que es
un valor l�gico para saber si contin�a repitiendo el bloque o no. Si el valor es
True, se ejecuta el bloque correspondiente al while; si es False, no se ejecuta y
contin�a el programa con la instrucci�n siguiente al bloque. El c�digo del ejemplo
permite ingresar n�meros y cada uno se acumula sum�ndolo en la variable suma, para
luego pedir al usuario un nuevo n�mero. Cuando se ingresa el 0, el bloque del while
no se ejecuta y pasa directamente a la siguiente instrucci�n, que en este caso es
un print que muestra la suma de todos los n�meros ingresados.
C�digo de ejemplo

numero=int(input("N�mero:"))
while numero != 0:
print("Tu n�mero es:", numero)

#La repetici�n anterior contiene un error y es que, si el n�mero ingresado por el


usuario es diferente de cero, se producir� un bucle infinito que mostrar� �Tu
n�mero es: [n�mero del usuario]� infinitas veces, sin continuar con el resto del
programa. Esto es as� porque, en las repeticiones while, una vez ejecutado el
bloque, se vuelve a evaluar la condici�n y, si es True, vuelve a ejecutar el bloque
y nuevamente a evaluar la condici�n. En el caso de ingresar un valor distinto de 0
en la variable numero, si no se permite cambiar ese valor la condici�n siempre
comparar� el mismo n�mero con el 0 y siempre ser� True, por lo que nunca dejar� de
repetir la instrucci�n print dentro del bloque. Para evitarlo, es necesario
permitir cambiar el valor de la variable numero:

numero=int(input("N�mero:"))
while numero != 0:
print("Tu n�mero es:", numero)
numero=int(input("N�mero:"))
32
Escrib� un programa que permita al usuario ingresar los montos de las compras de un
cliente (se desconoce la cantidad de datos que cargar�, la cual puede cambiar en
cada ejecuci�n), cortando el ingreso de datos cuando el usuario ingrese el monto 0.
Si ingresa un monto negativo, no se debe procesar y se debe pedir que ingrese un
nuevo monto. Al finalizar, informar el total a pagar teniendo que cuenta que, si
las ventas superan el monto total de 1000, se le debe aplicar un 10% de descuento.

Ejemplo de ejecuci�n:

Monto de una venta: $ 100


Monto de una venta: $ 300
Monto de una venta:$ -1
Monto no v�lido.
Monto de una venta: $ 2000
Monto de una venta: $ 0
Monto total a pagar: $ 2160.0

33
Escrib� un programa que permita al usuario ingresar una cantidad de n�meros
positivos indefinida (la cantidad que ingresar� no se conoce y puede cambiar en
cada ejecuci�n), finalizando cuando ingresa el n�mero 0 (que no se tendr� en
cuenta). Una vez terminada la lectura de n�meros, informar cu�l fue el mayor de los
n�meros ingresados.

Ejemplo de ejecuci�n:

N�mero: 6
N�mero: 9
N�mero: 2
N�mero: 12
N�mero: 0
Mayor n�mero ingresado: 12

C�digo de ejemplo

#La repetici�n while ejecutar� el bloque siempre que la condici�n sea True. En el
ejemplo anterior, se repetir� el bloque mientras los strings ingresados tengan
longitud 1 (un �nico car�cter) y la repetici�n finalizar� cuando se ingrese un
string con longitud diferente a 1 (ya sea un string vac�o o uno que tenga m�s de 1
car�cter).

cantidad=0
caracter=input("Car�cter:")
while len(caracter) != 1:
cantidad=cantidad+1
caracter=input("Car�cter:")

#En este segundo ejemplo se repetir� el bloque mientras los strings ingresados
tengan longitud diferente de 1 y la repetici�n finalizar� cuando se ingrese un
�nico car�cter.
34
Escrib� un programa que pregunte al usuario si desea analizar calificaciones de
alumnos y, s�lo si responde �S� comenzar� el procesamiento de los datos, hasta que
el usuario ingrese algo diferente de �S�. Por cada alumno, permitir ingresar su
calificaci�n. Si es mayor a 4 el alumno est� aprobado. Finalmente, mostrar
�Porcentaje de alumnos aprobados: x %� (donde x es el porcentaje de aprobados sobre
el total de calificaciones procesadas). Tambi�n se debe imprimir �Promedio de los
aprobados: y� (donde y es la calificaci�n promedio, s�lo de los alumnos aprobados).

Ejemplo de ejecuci�n:
�Analizar calificaciones? �S� para �s�: S
Calificaci�n de un alumno: 9
�Continuar? �S� para �s�: S
Calificaci�n de un alumno: 4
�Continuar? �S� para �s�: S
Calificaci�n de un alumno: 8
�Continuar? �S� para �s�: N
Porcentaje de alumnos aprobados: 66.66666666666667 %
Promedio de los aprobados: 8.5

C�digo de ejemplo

cantidad=0
n=int(input("N�mero:"))
while n>0 and n%10!=0:
cantidad=cantidad+1
n=int(input("N�mero:"))

#Una condici�n tiene que ser un valor l�gico, sin importar qu� tipo de operaci�n se
deba realizar para obtenerlo. En el ejemplo anterior, se ejecutar� el bloque
mientras los n�meros ingresados sean positivos (mayores que 0) y no sean m�ltiplos
de 10. Cuando el usuario ingrese un n�mero que incumpla alguna de las dos
condiciones (un n�mero negativo � un n�mero m�ltiplo de 10) el bloque deja de
ejecutarse.
35
Escrib� un programa que solicite al usuario el ingreso de strings de longitud 1 (un
solo car�cter), uno por vez. La repetici�n finalizar� cuando se ingrese un string
que no tenga longitud 1, o cuando el string ingresado corresponda al d�gito
num�rico 0. Al finalizar, mostrar el string completo que se form� con todos los
caracteres ingresados y qu� porcentaje de caracteres del total fueron la letra �a�.

Ejemplo de ejecuci�n:

Escrib� un car�cter: L
Escrib� un car�cter: 9
Escrib� un car�cter: a
Escrib� un car�cter: 4
Escrib� un car�cter: A
Escrib� un car�cter: 0
Escrib� un car�cter: N
Escrib� un car�cter: a
Escrib� un car�cter: a
Escrib� un car�cter: 5
El string completo es: L9a4A0Naa
Porcentaje de letras �a�: 33.333333333333336

36
Escrib� un programa que, dado un n�mero entero por el usuario (guardado como int),
muestre la suma de todos sus d�gitos. Record� que vas a necesitar obtener cada uno
de los d�gitos por separado para poder sumarlos entre s�.

Ejemplo de ejecuci�n:

Escrib� un n�mero: 7124


Suma de los d�gitos: 14

37
Escrib� un programa para solicitar al usuario que ingrese n�meros enteros positivos
(la cantidad que ingresar� no se conoce y la decide el usuario). La lectura de
n�meros finalizar� cuando el usuario ingrese el n�mero -1. Por cada n�mero
ingresado, mostrar la cantidad de d�gitos pares y la cantidad de d�gitos impares
que tiene. Al finalizar, mostrar cu�ntos n�meros m�ltiplos de 3 ingres� el usuario.

Ejemplo de ejecuci�n:

N�mero (-1 para terminar el programa): 123


D�gitos pares: 1
D�gitos impares: 2
N�mero (-1 para terminar el programa): 44
D�gitos pares: 2
D�gitos impares: 0
N�mero (-1 para terminar el programa): 9
D�gitos pares: 0
D�gitos impares: 1
N�mero (-1 para terminar el programa): -1
Se ingresaron 2 m�ltiplos de 3.

38
Escrib� un programa que solicite al usuario una cadena de caracteres (que puede
contener letras, n�meros o s�mbolos). Analizar la cadena para mostrar: cu�ntas
letras del abecedario (min�sculas y may�sculas) contiene, cu�ntos s�mbolos
(caracteres que no son ni letras ni n�meros), cu�ntos d�gitos num�ricos y, de los
d�gitos, cu�ntos son m�ltiplos de 4.

Ejemplo de ejecuci�n:

Cadena de caracteres: 1984 (novela de George Orwell)


Cantidad de letras: 20
Cantidad de d�gitos num�ricos: 4
Cantidad de s�mbolos: 6
Cantidad de m�ltiplos de 4: 2

39
Escrib� un programa que permita al usuario ingresar n�meros que ser�n le�dos como
string (no como int o float) hasta que ingrese uno que sea m�ltiplo de 10 � menor
que 0 (que no ser� procesado). Se formar�n dos strings, en los cuales se
concatenar�n los n�meros ingresados, seg�n el siguiente criterio: en un string se
concatenar�n todos los n�meros que el usuario ingrese cuya cantidad de d�gitos sea
un m�ltiplo de 3. En el otro, se concatenar�n todos los n�meros que contengan el
d�gito 0. Si un n�mero cumple ambas condiciones, debe concatenarse en ambos
strings. En cada string, despu�s de cada n�mero concatenado debe colocarse el
car�cter �-�. Al finalizar, mostrar en pantalla ambos strings.

Ejemplo de ejecuci�n:

N�mero: 829
N�mero: 102834
N�mero: 6
N�mero: 4307
N�mero: 23
N�mero: 1602357
N�mero: 5896
N�mero: 720
N�meros cuya cantidad de d�gitos es m�ltiplo de 3: 829-102834-
N�meros que contienen el 0: 102834-4307-1602357-

40
Escrib� un programa que permita al usuario ingresar t�tulos de libros por teclado,
finalizando el ingreso al leerse el string �*� (asterisco). Cada vez que el usuario
ingrese un string de longitud 1 que contenga s�lo una barra �/� se considera que
termina una l�nea. Por cada l�nea completa, informar cu�ntos d�gitos num�ricos (del
0 al 9) aparecieron en total (en todos los t�tulos de libros que componen en esa
l�nea). Finalmente, informar cu�ntas l�neas completas se ingresaron.

Ejemplo de ejecuci�n:

Cadena: Don Quijote de La Mancha


Cadena: Los 3 mosqueteros
Cadena: Historia de 2 ciudades
Cadena: /
Aparecen 2 d�gitos en la l�nea
Cadena: 20000 leguas de viaje submarino
Cadena: El se�or de los anillos
Cadena: Alicia en el pa�s de las maravillas
Cadena: 1984
Cadena: El hobbit
Cadena: /
Aparecen 9 d�gitos en la l�nea
Cadena: Divina comedia
Cadena: Dr�cula
Cadena: /
Aparecen 0 d�gitos en la l�nea
Cadena: 20 a�os despu�s
Cadena: Los viajes de Gulliver
Cadena: *
Se leyeron 3 l�neas completas

Secci�n 3
Funciones

C�digo de ejemplo

def promedio(x, y, z):


return (x+y+z)/3

n1=int(input("Primer n�mero:"))
n2=int(input("Segundo n�mero:"))
n2=int(input("Tercer n�mero:"))
print("El promedio de los tres es:", promedio(n1,n2,n3))

#La funci�n suma definida en el ejemplo recibe tres par�metros y retorna el


promedio.
#Una funci�n termina donde termina su bloque � cuando se ejecuta una instrucci�n
return, aunque est� en cualquier parte del bloque. Al retornar, el programa
contin�a desde el punto en donde se hab�a llamado a la funci�n.
#Una funci�n puede recibir 0 o m�s par�metros, sin l�mite, pero no puede retornar
m�s de un resultado a la vez. Puede tambi�n no retornar nada (por ejemplo, una
funci�n que s�lo muestra algo en pantalla).
41
Escrib� una funci�n llamada esPar que reciba como par�metro un n�mero y retorne
True si el n�mero es par � False si es impar. Utilizar esta funci�n en un programa
que solicite al usuario el ingreso de 10 n�meros y que luego muestre, por separado,
la suma de todos los pares y la suma de todos los impares.
Ejemplo de ejecuci�n:

N�mero: 620
N�mero: _12993
N�mero: 230
N�mero: 7
N�mero: 18
N�mero: 9234
N�mero: 38
N�mero: 567
N�mero: 8146
N�mero: 32
Suma de los pares: 18318
Suma de los impares: 13567

42
Escrib� una funci�n llamada sumatoriaDigitos que reciba como par�metro un n�mero y
retorne la suma de todos sus d�gitos, reutilizando la estrategia utilizada en el
ejercicio 36. Finalmente, escribir un algoritmo que solicite al usuario ingresar
varios n�meros hasta que ingrese el n�mero 100, con el cual cortar� la repetici�n.
Por cada n�mero, mostrar la suma de sus d�gitos, para lo cual se llamar� a la
funci�n sumatoriaDigitos.

Ejemplo de ejecuci�n:

Escrib� un n�mero: 7124


Suma de los d�gitos: 14
Escrib� un n�mero: 20
Suma de los d�gitos: 2
Escrib� un n�mero: 916
Suma de los d�gitos: 16
Escrib� un n�mero: 100

C�digo de ejemplo

def mayorDeDos(x, y):


if x > y:
return x
else:
return y

def mayorDeTres(x, y, z):


if mayorDeDos(x,y)==x:
if mayorDeDos(x,z)==x:
return x
else:
return z
else:
if mayorDeDos(y,z)==y:
return y
else:
return z

n1=int(input("Primer n�mero:"))
n2=int(input("Segundo n�mero:"))
n3=int(input("Tercer n�mero:"))
print(mayorDeTres(n1,n2,n3))
#Un programa puede tener una cantidad ilimitada de funciones y �stas pueden
llamarse desde cualquier parte del programa, incluso desde dentro de otras
funciones. Tambi�n es posible llamar a una misma funci�n m�s de una vez, incluso
pas�ndole diferentes datos como argumentos.
#Cada funci�n tiene su propio espacio de memoria, por lo que las variables creadas
dentro de ella no existen dentro del resto del programa. Es por esto que podr�an
utilizarse los mismos nombres para variables en diferentes funciones, pero
representar�n datos diferentes. Adem�s, aunque el valor de los par�metros se
modifique, �sto no modificar� los valores de los argumentos en la llamada a la
funci�n. Es por esto que se suele decir que los par�metros son datos �de entrada� y
el valor de retorno es un dato �de salida�.
43
Escrib� un programa que permita al usuario ingresar n�meros enteros. La repetici�n
terminar� cuando el usuario ingrese un n�mero para el cual la suma de sus d�gitos
sea mayor que 1000 � m�ltiplo de 5. Finalmente, mostrar cu�ntos n�meros impares
ingres� el usuario antes de cortar la repetici�n. Reutilizar las funciones esPar y
sumatoriaDigitos implementadas en los ejercicios anteriores.

Ejemplo de ejecuci�n:

Escrib� un n�mero: 16
Escrib� un n�mero: 922
Escrib� un n�mero: 1513
Escrib� un n�mero: 481
Escrib� un n�mero: 90
Cantidad de impares: 2

44
Escrib� una funci�n que reciba un string y retorne True si es un pal�ndromo (esto
es, si se lee igual de izquierda a derecha o de derecha a izquierda), False en caso
contrario. Utilizar esta funci�n en un programa que permita al usuario ingresar
palabras hasta que ingrese la palabra �fin� (suponer que todas las palabras son en
min�sculas o todas en may�sculas, de forma consistente). Al finalizar, mostrar la
cantidad de pal�ndromos ingresados.

Ejemplo de ejecuci�n:

Cadena: abba
Cadena: m
Cadena: luz
Cadena: reconocer
Cadena: golondrina
Cadena: fin
Cantidad de pal�ndromos: 3

C�digo de ejemplo

def cantidadDigitos(numero):
cantidad=0
while numero!=0:
cantidad=cantidad+1
numero=numero//10
return cantidad

mayor=-1
n=int(input("N�mero positivo:"))
while cantidadDigitos(n)%3 != 0:
if n>mayor:
mayor=n
n=int(input("N�mero positivo:"))
print("Mayor n�mero ingresado:", mayor)

#Las funciones son tambi�n �tiles para pensar los programas en partes m�s peque�as.
En el ejemplo de arriba, la repetici�n lee n�meros hasta que se ingresa uno cuya
cantidad de d�gitos es m�ltiplo de 3. Cuando finaliza la repetici�n, de todos los
n�meros ingresados se muestra cu�l fue el mayor. Pero para poder armar la condici�n
de esta repetici�n es necesario calcular la cantidad de d�gitos de un n�mero, lo
cual se delega en una funci�n que es llamada en cada iteraci�n, cuando se eval�a la
condici�n.
45
Escrib� un programa que permita al usuario ingresar n�meros enteros hasta que
ingrese uno cuyo d�gito inicial sea el 9 (el cual no se procesar�). Una vez
terminada la repetici�n, mostrar cu�ntos de los n�meros que el usuario ingres�
tienen s�lo dos divisores (para esto es posible reutilizar parte de la estrategia
elaborada en el ejercicio 25).

Ejemplo de ejecuci�n:

N�mero entero: 167


N�mero entero: 11
N�mero entero: 821
N�mero entero: 38
N�mero entero: 292
N�mero entero: 3
N�mero entero: 954
Tienen s�lo 2 divisores: 4 n�meros

También podría gustarte