1.
Operaciones Aritméticas
a. Escribir un programa que pregunte al usuario por el número de horas
trabajadas y el pago por hora. Después debe mostrar por pantalla la paga
que le corresponde.
b. Escribir un programa que lea un entero positivo, n, introducido por el
usuario y después muestre en pantalla la suma de todos los enteros desde
1 hasta n. La suma de los n primeros enteros positivos puede ser calculada
de la siguiente forma:
Suma= [n (n +1)]/2
c. Escribir un programa que pida al usuario su peso (en kg) y estatura (en
metros), calcule el índice de masa corporal y lo almacene en una variable, y
muestre por pantalla la frase Tu índice de masa corporal es <imc> donde
<imc> es el índice de masa corporal calculado redondeado con dos
decimales. (El índice de masa corporal puede ser calculado como peso
dividido la altura al cuadrado).
d. Se quiere calcular el Capital que deja la inversión de dinero en varios años,
con una tasa fija anual. Escribir un programa que pregunte al usuario el
Monto a invertir, el interés anual (sólo ingresando el número, sin el %), y
cantidad de años que lo dejará. Calcule y muestre por pantalla el Capital
obtenido en la inversión. Utilizar la fórmula Capital=Monto*(Interes/100 +
1)**años
Solución:
cantidad = float(input("¿Cantidad a invertir? "))
interes = float(input("¿Interés porcentual anual (nn)? "))
años = int(input("¿Años?"))
capital=(cantidad * (interes / 100. + 1)**años)
capitalround=round(cantidad * (interes / 100 + 1) ** años,2)
print(f"Capital final: {capital}")
print("Capital final con redondeo a 2 decimales: "
,capitalround)
Fijarse como se puede almacenar un número con exactamente la
cantidad de decimales que se desee. Por eso se usa la función
round(num,dec) donde se le pasa num: un número (o una
fórmula) y dec:la cantidad de decimales a los que se quiere
redondear.
Ejecutarlo y observar los resultados:
con Monto=500, interés=12.5 y años=2
con Monto=500, interés=50 y años=2
En el último caso se notará que por más que use la función
round a 2 decimales, lo muestra con uno solo ya que ese no
tiene más decimales para redondear (ver el resultado sin el
round). La diferencia está en como lo almacena.
2. Ejercicios con cadenas de texto y sus métodos.
a. Escribir un programa que pregunte el nombre completo del usuario en la
consola y después muestre por pantalla el nombre completo del usuario
tres veces, una con todas las letras minúsculas, otra con todas las letras
mayúsculas y otra solo con la primera letra del nombre y de los apellidos en
mayúscula. El usuario puede introducir su nombre combinando mayúsculas
y minúsculas como quiera.
b. Pedir un número de teléfono con el siguiente formato: pppcccnnnnnnn,
donde ppp es el código numérico del país, ccc es el código numérico de la
ciudad en ese país, y nnnnnnn el número telefónico. Utilizando slicing de
strings mostrar por separado, código del país, de la ciudad y el número de
teléfono.
c. Pedir un número de teléfono con el siguiente formato: país-ciudad-número,
donde país es el código numérico del país, ciudad es el código numérico de
la ciudad en ese país, y número el número telefónico. Utilizando el método
Split de string mostrar por separado, código del país, de la ciudad y el
número de teléfono.
Solución:
telefono=input("Ingrese un número completo de telefono con
cód de país y ciudad separado por guiones\nEjemplo:0054-11-
49871234 :")
pais,ciudad,tel=[Link]("-")
print("Cod País:",pais, "Cod Ciudad:", ciudad, "Nro.
Teléfono:", tel)
Fijarse un uso del método Split que divide el string en
distintos valores según el separador que le pasemos.
d. Escribir un programa que pida al usuario que introduzca una frase en la
consola y una vocal en minúscula, y después muestre por pantalla la misma
frase pero con la vocal introducida en mayúscula.
Solución:
frase = input("Introduce una frase: ")
vocal = input("Introduce una vocal en minúscula: ")
print([Link](vocal, [Link]()))
Fijarse el uso del método replace que reemplaza todas las
ocurrencias del texto pasado en el primer argumento por el
texto del segundo argumento.
e. Escribir un programa que pregunte el correo electrónico del usuario en la
consola y muestre por pantalla otro correo electrónico con el mismo nombre
(la parte delante de la arroba @) pero con dominio [Link]. Por
ejemplo si ingresa abc@[Link] debe devolver abc@[Link]
Solución:
mail = input("Introduce tu correo electrónico personal: ")
mail_untref= mail[:[Link]('@')] + '@[Link]'
print("Tu correo electrónico de UNTREF es: ",mail_untref)
Fijarse el uso de slicing tomando desde el inicio del string
hasta donde encuentra el ‘@’ utilizando el método find para
determinar esa posición.
f. Escribir un programa que pregunte al usuario la fecha de su nacimiento en
formato dd/mm/aaaa y muestra por pantalla, el día, el mes y el año.
g. Escribir un programa que pregunte el nombre de un producto, su precio por
unidad y un número de unidades para que muestre por pantalla esos datos
y el total calculado. Por ejemplo si ingresó como producto Bananas, como
precio unitario 25 y como unidades 2, deberá mostrar:
Bananas: 2 unidades a 25.00$ por unidad= 50.00$
donde :
el número de unidades lo mostrará con cinco dígitos,
el precio unitario con 6 dígitos enteros y 2 decimales
y el total con 8 dígitos enteros y 2 decimales
Solución:
producto = input('Introduce el nombre del producto: ')
precio = float(input('Introducde el precio unitario: '))
unidades = int(input('Introduce el número de unidades: '))
total = unidades * precio
print(f'{producto}: {unidades:3d} unidades a {precio:9.2f}$
por unidad = {total:11.2f}$')
Fijarse como se puede dar formato a los números con y sin
decimales. Hay que usar la forma del print(f’………’) y cada vez
que se desee mostrar una variable numérica agregarle cantidad
de dígitos (n) si es entera {variable:nd} y cantidad total de
posiciones y decimales si es con decimales {variable:[Link]}
donde t es cantidad total de dígitos incluyendo el punto
decimal, d es la cantidad de decimales y t-d-1=cantidad de
dígitos para la parte entera.