[ Foro de Python ]
Gracias apreciable Nacho, por tan excelente curso, quisiera publicar dos de mis programas que resuelven dos de los problemas que planteas en lo ultimo de las lecciones, pero solo con tu aprobación, si es que lo consideras prudente o te lo mando en privado?. saludos
Me parece perfecto que los publiques "en abierto", adelante con ello!
Ok gracias por la autorización Nacho, Que gusto.
?3.7. Crea un programa que pida al usuario tres números reales y muestre el mayor de los tres
El programa que hice de respuesta para la pregunta anterior, fue este:
print("Escribe 3 números enteros diferentes y te dire cual es el mayor")
print("Tienes 3 oportunidades")
print()
oportunidades = 3
flag = 0
while oportunidades != 0:
n_1=int(input("Teclea el primer número "))
n_2=int(input("Teclea el segundo número "))
n_3=int(input("Teclea el tercer número "))
if n_1 != n_2 and n_1 != n_3 and n_2 != n_3 :
if n_1 > n_2:
if n_1 > n_3:
print()
print("El primer numero es el mayor y es",n_1)
oportunidades = 0
flag = 1
if n_2 > n_3:
if n_2 > n_1:
print()
print("El segundo numero es el mayor y es",n_2)
oportunidades = 0
flag = 1
if n_3 > n_2:
if n_3 > n_1:
print()
print("El tercero numero es el mayor y es",n_3)
oportunidades = 0
flag = 1
else:
print()
print("Escribiste dos o mas números iguales")
print("Tienes que escribirlos diferentes")
oportunidades = oportunidades-1
if oportunidades == 1:
print("Solo te queda",oportunidades,"oportunidad")
print()
elif oportunidades == 0:
print("¡Agotaste tus 3 oportunidades! :(")
print()
else:
print("Solo te quedan",oportunidades,"oportunidades")
print()
if flag == 0:
print("¡¡ Nunca escribiste 3 numeros diferentes !!")
else:
print()
print("¡¡ Operación concluida exitosamente !!")
Califíqueme profe, no mas tenga en cuenta que tengo 15 días en esto del python jajaja
?4.7. Crea un programa que pida al usuario una anchura y una altura, y dibuje un rectángulo formado por asteriscos, que tenga ese ancho y ese alto. Así lo resolví:
#Programa que genera un cuadro con lineas formadas de asteriscos
l=int(input("Introdusca el largo en astericos del rectangulo "))
a=int(input("Introdusca el ancho en astericos del rectangulo "))
c=0
l1=l+1
l2=l-1
a1=a+1
for c in range(1,l1):
print("*",end="")
print()
for c in range(1,a1):
print("*",end="")
for c in range(1,l2): #Aqui se generan los espacios vacios segun sea el ancho
print(" ",end="" )#del rectangunlo
print("*")
for c in range(1,l1):
print("*",end="")
Programa para generar la tabla de multiplicar según el numero introducido:
print("Programa que escribe una tabla completa de multiplicar del número entero pedido")
n=int(input("Introduce un número "))
c=00
for c in range(1,11):
if c == 10:
print(n," x ",c," = ",c*n)
else:
print(n," x ",c," = ",c*n)
Para el 4.6, la lógica es buena, aunque innecesariamente rebuscada: si introduce 5, 5 y 5, no tiene por qué ser un error. Simplemente, el mayor de esos valores es 5. Por eso, no es necesario darle varias oportunidades. Como otra mejora, la variable "flag" es poco legible. El nombre debería indicar si misión. Mejor un nombre largo pero claro, como "respuestaCorrecta" que uno corto y poco evidente.
El 4.7 es bueno. Aún así, una sugerencia de mejora : prueba a escribir una cadena multiplicada por un número.
El último esta perfecto también.
Gracias Nacho por tus sugerencias y puntos de vista lo corregiré y luego comento. saludos
Realice los cambios que me pediste haber como lo vez?
#Programa que genera un cuadro con lineas formadas de asteriscos
n=int(input("Introdusca el largo en astericos del rectangulo "))
a=int(input("Introdusca el ancho en astericos del rectangulo "))
for c in range(1,n):
print("*",end="")
for c in range(1,a+1):
print("*",' '*(n-3),end="")
print("*")
for c in range(1,n+1):
print("*",end="")
La idea importante es que en Python (y no en la mayoría de lenguajes) puedes escribir 10 guiones usando el asterisco para multiplicar, así:
print("-"*10)
De hecho, puedes crear una cadena de forma repetitiva a partir de otra, usando el asterisco:
guiones = "-" * 10
print(guiones)
Si aplicas esa idea a tu programa, verás que se puede simplificar mucho.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)