Python,opiniones?

Iniciado por Panic0, 21 Noviembre 2020, 02:39 AM

0 Miembros y 2 Visitantes están viendo este tema.

Panic0

Hola a todos,hace poco Inicié un curso de python (Ya voy 9 clases aprox) hice un pequeño programa para de inicio de sesión.

Me gustaría saber sus opiniones (opiniones DECENTES y bien realizadas) lógicamente seguro tengo muchos errores.

Pd:Lo hice SOLO con lo que voy aprendiendo.

v = 1
while True:
    print("Que quiere hacer?" + "\n" + "1:Crear un usuario" + "\n" + "2:Inicia sesión" + "\n" + "3:Salir" )
    d = int(input(": "))
    if d == 1:
        while True:
            user1 = input("Ingrese un usuario: ")
            user2 = input("Repita el usuario: ")
            if user1 == user2:
                while True:
                    pass1 = input("ingresé una contraseña: ")
                    pass2 = input("Repita la contraseña: ")
                    if pass1 == pass2:
                        print("Usuario creado con éxito!")
                        v = 2
                        break
                    else:
                        print("Error ingresé la contraseña nuevamente!")
            if pass1 == pass2:
                break
            else:
                print("Error ingresé el usuario nuevamente!")
    if d == 2:
        if v == 1:
            print("Sin usuario!")
        else:
            while True:
                user1 = input("Ingresé el usuario: ")
                pass1 = input("Ingresé la contraseña: ")
                if user1 == user2 and pass1 == pass2:
                    v = 5
                    break
                else:
                    print("Nombre de usuario o contraseña incorrectos ")
    if v == 5:
        print("Iniciando sesión...")
        break
    if d == 3:
        print("Vuelva pronto!")
        break


:(
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.

tincopasan

#1
¿me gustaría saber que es para vos una opinón decente y bien realizada? ¿y qué pasa si no son así?
¿cuál es la necesidad de remarcar que lo hiciste solo con lo que vas aprendiendo? ¿es eso extraordinario?
con respecto al código, efectivamente hay muchos errores, ni hablar que se puede simplificar.
veamos:
Código (python) [Seleccionar]
print("Que quiere hacer?" + "\n" + "1:Crear un usuario" + "\n" + "2:Inicia sesión" + "\n" + "3:Salir" )
la suma(concatenación) de cada cadena es innecesaria y además es feo de leer pero en todo caso:
Código (python) [Seleccionar]
print("Qué quiere hacer?\n1:Crear un usuario\n2:Inicia sesión\n3:Salir" )
da el mismo resultado y te ahorrás todos los "+"
pero lo mejor para hacer el código más legible sería:

Código (python) [Seleccionar]

print("""Qué quiere hacer?
1:Crear un usuario
2:Inicia sesión
3:Salir""" )   #el mismo resultado más legible


Código (python) [Seleccionar]

d = int(input(": "))


no hay manejo de error, el usuario puede "errar" y tipear una letra lo cual lo hará crashear, además si la opción es mayor a 3 repite el menú pero no infoema que la opción no es válida.

hay varios errores de indentado, no sé si cuando lo copiaste o así está, si ponés dos usuarios distintos  dará error, y si haces todo bien repetirá el bucle sin salir.
solo permite un usuario, no vuelve al menú etc.

Edito: me olvidé, esto debería ir en scripting

Panic0

#2
Cita de: tincopasan en 21 Noviembre 2020, 03:16 AM
¿me gustaría saber que es para vos una opinón decente y bien realizada? ¿y qué pasa si no son así?
¿cuál es la necesidad de remarcar que lo hiciste solo con lo que vas aprendiendo? ¿es eso extraordinario?
con respecto al código, efectivamente hay muchos errores, ni hablar que se puede simplificar.
veamos:
Código (python) [Seleccionar]
print("Que quiere hacer?" + "\n" + "1:Crear un usuario" + "\n" + "2:Inicia sesión" + "\n" + "3:Salir" )
la suma(concatenación) de cada cadena es innecesaria y además es feo de leer pero en todo caso:
Código (python) [Seleccionar]
print("Qué quiere hacer?\n1:Crear un usuario\n2:Inicia sesión\n3:Salir" )
da el mismo resultado y te ahorrás todos los "+"
pero lo mejor para hacer el código más legible sería:

Código (python) [Seleccionar]

print("""Qué quiere hacer?
1:Crear un usuario
2:Inicia sesión
3:Salir""" )   #el mismo resultado más legible


Código (python) [Seleccionar]

d = int(input(": "))


no hay manejo de error, el usuario puede "errar" y tipear una letra lo cual lo hará crashear, además si la opción es mayor a 3 repite el menú pero no infoema que la opción no es válida.

hay varios errores de indentado, no sé si cuando lo copiaste o así está, si ponés dos usuarios distintos  dará error, y si haces todo bien repetirá el bucle sin salir.
solo permite un usuario, no vuelve al menú etc.

Edito: me olvidé, esto debería ir en scripting


Wow tu opinión está exelente (una pija con patas y pelos hubiese dado una mejor opinión la verdad)

Además es necesario ser tan sobrador?
(O por lo menos yo noto eso)
Gracias por responderme!

::)
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.

tincopasan

Aclaremos algo, no soy sobrador con respecto al código(pediste observaciones, eso son), todos estamos aprendiendo, si lo soy en cuanto a los comentarios fuera del código, porque ¿de qué sirve pedir una opinión sino se aguantan la respuesta? Las opiniones no siempre serán lo que queremos oir, y ser nuevo o autodidacta no es excusa, muchos en el foro lo son y no por eso lo presumen o ponen como pretexto.

MCKSys Argentina

Cita de: Panic0 en 21 Noviembre 2020, 05:25 AM
Wow tu opinión está exelente (una pija con patas y pelos hubiese dado una mejor opinión la verdad)

Además es necesario ser tan sobrador?
(O por lo menos yo noto eso)
Gracias por responderme!

::)

Panic0: Lo escrito por tincopasan lo veo bien y lo denotado en los errores de tu código es estrictamente técnico. No encuentro lo "sobrador" en su comentario. Si es por sus consultas iniciales, deberías haber respondido a las mismas, no contestar como lo has hecho.

Tu comentario (que cito al inicio) lo encuentro estrictamente ofensivo y fuera de lugar.

Por otro lado, todos los temas referente al lenguaje python, van en la sección de scripting.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Danielㅤ

#5
Hola, el compañero tincopasan no te ha ofendido para nada, además ha dado su comentario y si te fijas es el único que te ha ayudado hasta ahora (hasta mí post), hay que valorar eso.

Por otro lado dandote mí punto de vista:

Tú código debería ir dentro de una función, como recién comenzas lo mejor es siempre poner los códigos dentro de funciones.

Aquí tienes que hacer la comprobación:

   d = int(input(": "))

Porque siempre intentas pasar a int el valor del usuario, pero el usuario puede no poner un número ya sea por error o intencionalmente.

Por otro lado aquí:


           user1 = input("Ingrese un usuario: ")
           user2 = input("Repita el usuario: ")


Tenés que hacer la comprobación de que user1 tiene que ser igual que user2.

Usas mucho break, no deberías usarlo para nada, no es recomendable.

Tenés que usar el else if, siempre usas if, pero el else if es sumamente importante.

Usas muchos while, deberías o no usar ninguno o solamente usar uno solo es suficiente, también podes usar funciones en vez de while, las llamas cada vez que necesites, una llamada sería como vuelta/ciclo del while o for.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Panic0

Cita de: tincopasan en 21 Noviembre 2020, 16:03 PM
Aclaremos algo, no soy sobrador con respecto al código(pediste observaciones, eso son), todos estamos aprendiendo, si lo soy en cuanto a los comentarios fuera del código, porque ¿de qué sirve pedir una opinión sino se aguantan la respuesta? Las opiniones no siempre serán lo que queremos oir, y ser nuevo o autodidacta no es excusa, muchos en el foro lo son y no por eso lo presumen o ponen como pretexto.
Si te soy sincero tu opinión sonó más como que te estabas burlando.
maybe lo interprete mal jajajaja
Perdón  :(  :-(
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.