
Múltiples booleanos en un condicional if.
Publicado por Xamiend (18 intervenciones) el 21/02/2015 22:47:38
Buenas, me preguntaba si habría una forma abreviada o corta de poner múltiples booleanos en un condicional. Estaba intentando escribir un programa en el que tú le dices un día, un mes y un año (todo con números enteros) y él te devuelve el día siguiente (sin considerar los años bisiestos, es decir, sin 29 de febrero). Para ello también tenía que comprobar que el usuario no pusiera por ejemplo 32 de enero o 31 de abril:
def sig():
sig()
***
Lo que intento decir es que para todos los meses que tengan 31 días (1,3,5,7,8,10,12), se haga algo, pero no es la sintaxis correcta. ¿Cómo podría hacer esto sin llenarlo todo de booleanos? ¿Cuál es la sintaxis correcta?
***
No sé si habrá otros errores de sintaxis o si el programa me da el resultado buscado o no. Tengo otra forma de conseguir lo mismo con strings y listas, pero lo que me gustaría saber es formas de poner muchos booleanos en un condicional.
Gracias de antemano.
def sig():
print "Escribe en números enteros"
print "y excluye el 29 de Febrero:"
lll = 0 #Esta variable sólo sirve para el bucle while
while lll ==0:
dia = input("Día: ")
mes = input("Mes: ")
yr = input("Año: ")
if dia <= 0 or mes <= 0 or mes >=13: #Comprobamos que no haya puesto valores negativos en días ni meses, ni meses mayores de 12
print "No ponga días o meses negativos, ni meses mayores de 12, por favor"
print ''
else: #Si no los ha puesto, lll cambia a 1 y el bucle while no se vuelve a ejecutar.
lll = 1
if mes==1,3,5,7,8,10,12 and dia==31: #Aquí es donde está el problema***.
if mes==12:
dia = 1
yr +=1
mes = 1
mes = 1
else:
dia = 1
mes += 1
mes += 1
elif mes==4,6,9,11 and dia==30:
dia = 1
mes += 1
mes += 1
elif mes==2 and dia==28:
dia = 1
mes += 1
mes += 1
elif:
dia += 1
print "Día: ", dia
print "Mes: ", mes
print "Año: ", yr
print "Mes: ", mes
print "Año: ", yr
sig()
***
Lo que intento decir es que para todos los meses que tengan 31 días (1,3,5,7,8,10,12), se haga algo, pero no es la sintaxis correcta. ¿Cómo podría hacer esto sin llenarlo todo de booleanos? ¿Cuál es la sintaxis correcta?
***
No sé si habrá otros errores de sintaxis o si el programa me da el resultado buscado o no. Tengo otra forma de conseguir lo mismo con strings y listas, pero lo que me gustaría saber es formas de poner muchos booleanos en un condicional.
Gracias de antemano.
Valora esta pregunta


0