[Python] - Los años no perdonan.

Iniciado por Meta, 25 Noviembre 2010, 08:46 AM

0 Miembros y 2 Visitantes están viendo este tema.

Meta

Muy buenas:

Ejercicio 276...

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

Un abrazo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

En realidad no tiene ninguna dificulta, otra vez el problema esta en la lectura y la comprensión del ejercicio.

Condiciones:
Si año divisible por 4 y no por 100, Bisiesto.
Si año divisible por 4, divisible por 100 y divisible por 400, Bisiesto.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

Código (python) [Seleccionar]
year = int(raw_input('Introduce el año en  cifras: '))

if (year % 4) or (not year % 100):
    print 'El año', year, 'es bisiesto.'

if (year % 4) and (year % 100) and (year % 400):
    print 'El año', year, 'es biciesto.'
else:
    print year, 'año no bisiesto.'


Me falta algo por pulir que no me sale como quiero. jejejeje.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Ragnarok

Código (python) [Seleccionar]
def days(y): return 366 if not y%4 and y%100 or not y%400 else 365

un poco menos natural:

Código (python) [Seleccionar]
def days(y): return 365 if (y%4 or not y%100) and y%400 else 366
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

.:WindHack:.

Código (python) [Seleccionar]
def Bisiesto(sAnyo):
    return sAnyo % 4 == 0 and sAnyo % 400 == 0 or sAnyo % 100 != 0

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

Meta

Cita de: .:WindHack:. en 25 Noviembre 2010, 23:28 PM
Código (python) [Seleccionar]
def Bisiesto(sAnyo):
    return sAnyo % 4 == 0 and sAnyo % 400 == 0 or sAnyo % 100 != 0


Del 2010 al 2015 más otros años siempre es bisiesto cuando en realidad son cada  años. No parace funcionar.

Cita de: Ragnarok en 25 Noviembre 2010, 23:24 PM
Código (python) [Seleccionar]
def days(y): return 366 if not y%4 and y%100 or not y%400 else 365
/quote]

Este funciona mejor.

¿Pueden hacer que en su salida en pantalla muestre...

...Año 2010 es bisiesto?

...Año 5555 no es bisiesto?
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Meta

Hola de nuevo:

Ahora lo hice de esta menera.

Código (python) [Seleccionar]
year = int(raw_input('Introduce el año en  cifras: '))

# Función.
def el_ano_es_bisiesto(year):
    return year % 4 == 0 and year % 100 != 0 or year % 400 == 0

# Muestra información pantalla.
if (el_ano_es_bisiesto(year) == True):
    print 'El año', year, 'es bisiesto.'
else:
    print 'El año', year, 'no es bisiesto.'


No estoy del todo convencido de que sea así.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

pirob

#7
Saludos a todos,
aprovecho para presentarme, jejeje.
Soy pirob y desde hace un tiempo estoy prendiendo python por mi cuenta. Encontré este foro en el que hay mucha información al respecto y nada, aquí me tenéis  :P

Bueno, respecto al código he hecho esto:
Código (python) [Seleccionar]

# By pirob - 2/12/2010

def bisiesto():
 
 year = int(raw_input("Introducelo: "))

 if year % 4 == 0:
   if year % 100 != 0:
     print "%d es bisiesto." % year
   
   else:
     if year % 400 == 0:
print "%d es bisiesto" % year
     else:
print "%d no es bisiesto." % year
   
 else:
   print "%d no es bisiesto." %year
   
 return year
 
bisiesto()


A mí me funciona bien, pero es cuestión de que lo probéis  :rolleyes: