Python - Duda con while dentro de otro while

 
Vista:
Imágen de perfil de Paula
Val: 10
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda con while dentro de otro while

Publicado por Paula (2 intervenciones) el 01/04/2021 04:26:17
Buenas amigos,

Adjunto mi programa ya que no sale con tabulaciones en el post.

Soy nueva programando y estoy creando un programa de calculo de impuestos. Mi problema se da al momento de meter un while dentro de otro while. Hice uno para ingresar una contrasena el cual no deberia de permitir ingresar a menos de que el usuario y la contrasena sean 123. Lamentablemente cuando agregue el while para volver al menu principal la opcion de contrasena invalida no funciona y deja ingresar al usuario aunque la clave no sea 123. Alguien me podria indicar que esta mal? ya le di vuelta a toda la info y sigue sin funcionar, puede ser incluso un error de tabulacion pero no he identificado el problema. Les agradezco la ayuda, a continuacion el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
nombre=input ("Ingrese su nombre: ")
apellido=input ("Ingrese su apellido: ")
telefono= input("ingrese su numero telefonico: ")
print ("Gracias por los datos ", nombre, apellido,)
print ("Recibiras un usuario y contrasena al numero:" ,telefono,)
print ("Por favor ingreselos.")
print ("NOTA: Si anteriormente se registro no recibira el mensaje de texto y puede ingresar el usuario y contrasena que recibio en el primer mensaje.")
 
usuario=""
clave=""
while usuario != "123" or clave!= "123" :
 
    usuario=input("Ingrese el usuario: ")
    clave=input("Ingrese la clave recibida: ")
 
 
 
 
    if usuario =="123" and clave=="123":
 
        #MENU PRINCIPAL
 
        print("**Sistema de calculo de impuestos**")
    while True:
        print ("Bienvenido, seleccione una de las siguientes opciones")
        print ("1-Calculo impuesto renta")
        print ("2-Calculo del iva")
        opcionmenu=input("Ingrese el valor numerico de la opcion: ")
 
 
 
        # MENU IMPUESTO RENTA
 
 
        if opcionmenu=="1":
            print ("Seleccione una de las siguientes opciones: ")
            print ("1-Calculo para personas juridicas")
            print ("2-Calculo para personas fisicas con actividad lucrativa")
            print ("3-Calculo para asalariados")
            opcionmenu=input("Ingrese el valor numerico de la opcion: ")
 
 
        #CALCULO DE IMPUESTO PERSONA JURIDICA:
            def persjur():
                ingresosbrutos=int(input("Ingrese sus ingresos brutos percibidos: "))
                gastos=int(input("Ingrese sus gastos: "))
                rentaneta=ingresosbrutos-gastos
 
                if rentaneta <=54303000:
                    impuestorenta=rentaneta*0.10
                    print ("El impuesto sobre la renta que debe pagar es: ", impuestorenta)
 
                elif rentaneta >54303000 and rentaneta<=109228000:
                    impuestorenta=rentaneta*0.20
                    print ("El impuesto sobre la renta que debe pagar es: ", impuestorenta)
 
                else:
                    impuestorenta=rentaneta*0.30
                    print ("El impuesto sobre la renta que debe pagar es: ", rentaneta*0.30)
 
        #CALCULO DE IMPUESTO PERSONA FISICA CON ACTIVIDAD LUCRATIVA:
            def persfis():
                ingresosbrutos=int(input("Ingrese sus ingresos brutos percibidos: "))
                gastos=int(input("Ingrese sus costos y gastos: "))
                rentaneta=ingresosbrutos-gastos
                if rentaneta <=3628000:
                    print ("Este monto no tiene que pagar impuestos")
                elif rentaneta>3628000 and rentaneta <=5418000:
                    print ("El impuesto de la renta que se debe pagar es: ", rentaneta-3628001*0.10)
                elif rentaneta>5418000 and rentaneta <=9038000:
                    print ("El impuesto de la renta que se debe pagar es: ", rentaneta-5418001*0.15)
                else:
                    print ("El impuesto de la renta que se debe pagar es: ", rentaneta-9038001*0.20)
 
           #CALCULO DE IMPUESTO ASALARIADOS:
            def asalariados():
                salario=int(input("Ingrese su salario"))
                if salario<817000:
                    print ("Su salario esta exento de impuestos")
                elif salario >817000 and salario<=1226000:
                    resta=salario-817000
                    pagototalimp=resta*0.10
                    print ("El impuesto a deducir es de: ", pagototalimp)
                else:
                    resta=salario-1226001
                    pagototalimp=resta*0.15
 
                    print ("El impuesto a deducir es de: ", pagototalimp)
 
 
 
        #SELECCION DE MENU DE IMPUESTOS RENTA:
 
        if opcionmenu=="1":
            persjur()
 
        elif opcionmenu=="2":
            persfis()
        else:
            asalariados()
 
        #USO DEL WHILE PARA RETORNAR AL MENU
        i=input ("Desea volver al menu principal? Digite S para retornar y N para salir ")
        if i =="n" or i=="N":
            break
 
 
    else:
 
         print ("Los datos son invalidos, intente de nuevo")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 794
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda con while dentro de otro while

Publicado por algoritmo (211 intervenciones) el 01/04/2021 11:02:59
Hola

Tu segundo while y todo el código que lo contiene, debe estar indentado (sangrado) más a la derecha, de modo que esté dentro del condicionante del if usuario == ....

Un saludo :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Paula
Val: 10
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda con while dentro de otro while

Publicado por Paula (2 intervenciones) el 01/04/2021 18:12:48
Hola! Muchas gracias! Gracias por el consejo, ya funciona :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar