AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor alfredo23 » Vie Dic 17, 2010 8:21 pm

Muy buenas:



La verdad no entiendo muy bien lo de los años bisiestos en Python. Parece una función muy compleja y larga de hacer.

Un abrazo.http://www.subeimagenes.com/img/gdfghfhfghgj-7784.jpg
alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor Juanxo » Sab Dic 18, 2010 12:00 am

Código: Seleccionar todo

esDivisiblePor4 = anio % 4
esDivisiblePor100 = anio % 100
esDivisiblePor400 = anio % 400

if (esDivisiblePor400 or (esDivisiblePor4 and not esDivisiblePor100):
  print 'Es bisiesto'
else:
  print 'No es bisiesto'

Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor kaiser » Sab Dic 18, 2010 11:41 am

Hola Alfredo, es cuestión de coger lápiz y papel y ponerse a desenredar el enunciado, y básicamente nos queda que un año es bisiesto en 2 situaciones:

-Si es divisible por 4 Y por 100 Y por 400, ésto se puede simplificar ya que si es divisible por 400 también lo va ser por 4 y por 100, así que solo es necesario comprobar que sea divisible por 400 (primera condición del if).

-Si es divisible por 4 Y NO es divisible por 100 (segunda condición del if).

Solo queda poner un or entre las dos condiciones para comprobar que la primera es cierta O la segunda es cierta.

Hola Juanxo, si te fijas esDivisiblePorX vale 0 cuando es divisible, al evaluar el 0 en el if, dará false, por lo que es necesario negar los valores antes de asignarlos para que el código se ejecute correctamente.

Código: Seleccionar todo
anio=int(raw_input("Introduzca un año: "))

esDivisiblePor4 = not(anio % 4)
esDivisiblePor100 = not(anio % 100)
esDivisiblePor400 = not(anio % 400)

if (esDivisiblePor400 or (esDivisiblePor4 and not esDivisiblePor100)):
  print 'Es bisiesto.'
else:
  print 'No es bisiesto.'


y aquí dejo el código compacto como a mi me gusta xD:

Código: Seleccionar todo
anio = int(raw_input("Introduzca un año: "))

print "Es bisiesto." if (anio%400==0 or (anio%4==0 and anio%100!=0)) else "No es bisiesto."


Un Saludo!
De la API al IDE y del IDE a la API.
Avatar de Usuario
kaiser
 
Mensajes: 121
Registrado: Mié Nov 24, 2010 7:47 pm
Ubicación: Madrid (España)

Re: AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor Juanxo » Sab Dic 18, 2010 12:36 pm

cierto, quería poner x % y == 0, pero se me paso ponerlo al final

Y lo de poner tanto nombre de variable era para aclarar. Lo mejor es lo que comentabas, partir los enunciados en puntos (más o menos como requisitos) y programar cada punto
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor alfredo23 » Sab Dic 18, 2010 5:15 pm

esta funcion podria estar bien los resultados me cuadran pero no estoy seguro.gracias


Código: Seleccionar todo
def es_bisiesto(n):
    while n%4==0:
        if (n%100!=0 and n%400==0) or(n%100==0 and n%400==0):
            return("es bisiesto")
        elif n%100!=0:
            return("es bisiesto")
        else :
            return("NO es bisiesto")
   
               
    return("No es bisiesto")   
n=int(input("Introduce el año"))
print("El año es:",es_bisiesto(n))
def devuelve_dias(n):
    if es_bisiesto(n):
        return("366 dias")
    else:
        return("365 dias")


print("El nº de dias son:",devuelve_dias(n))

alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: AYUDA CON EJERCICIOS DE PHYTON!!AÑO BISIESTO

Notapor kaiser » Sab Dic 18, 2010 6:01 pm

O_o

Espera un momento que voy a meterme una sobredosis de pastillas a ver si alcanzo a entender que clase de desajuste neuronal te ha llevado a escribir ese código...
De la API al IDE y del IDE a la API.
Avatar de Usuario
kaiser
 
Mensajes: 121
Registrado: Mié Nov 24, 2010 7:47 pm
Ubicación: Madrid (España)


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado