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:
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")
- prueba1.zip(1,3 KB)
Valora esta pregunta
0