Python - Múltiples booleanos en un condicional if.

 
Vista:
Imágen de perfil de Xamiend

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():
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
else:
dia = 1
mes += 1
elif mes==4,6,9,11 and dia==30:
dia = 1
mes += 1
elif mes==2 and dia==28:
dia = 1
mes += 1
elif:
dia += 1

print "Día: ", dia
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Múltiples booleanos en un condicional if.

Publicado por MMan (4 intervenciones) el 21/02/2015 23:10:04
conjuntos


1
2
3
4
5
6
7
>>> canasta = {'manzana', 'naranja', 'manzana', 'pera', 'naranja', 'banana'}
>>> print fruta                  # muestra que se removieron los duplicados
{'pera', 'manzana', 'banana', 'naranja'}
>>> 'naranja' in canasta         # verificación de pertenencia rápida
True
>>> 'yerba' in canasta
False


http://docs.python.org.ar/tutorial/3/datastructures.html
----------
xmes = {1,3,5,7,8,10,12}
if mes in xmes and dia==31
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
4
Comentar
Imágen de perfil de Xamiend

Múltiples booleanos en un condicional if.

Publicado por Xamiend (18 intervenciones) el 22/02/2015 12:53:07
Muchas gracias :)
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