Python Schaltjahre?
Hallo ich habe ein Program gecodet das jahre als Schalt oder nicht Schalt jahre erkennt nur ist mein Problem das bei das 2100 kein Schaltjahr ist aber mein PRogramm meint schon.Hier anbei der Code:
jahr = int(input('Gib das Jahr ein: '))
if jahr < 1582:
print('Ungültige Eingabe. Jahreszahl muss größer 1581 sein.')
elif jahr >= 1582 and jahr % 4 == 0:
print(str(jahr) + ' ist ein Schaltjahr')
elif jahr >= 1582 and jahr % 400 == 0:
print(str(jahr) + ' ist ein Schaltjahr')
elif jahr >= 1582 and jahr % 100 == 0:
print(str(jahr) + ' ist kein Schaltjahr')
else:
print(str(jahr) + ' ist kein Schaltjahr')
1 Antwort
Du hast vergessen zu bedenken, was passiert, wenn für ein Jahr mehrere deiner Bedingungen erfüllt sind. Denn 2100 ist sowohl durch 4 als auch durch 100 teilbar.
Versuche es einmal damit:
if (jahr % 4 == 0 and jahr % 100 != 0) or jahr % 400 == 0 :
print(str(jahr) + ' ist ein Schaltjahr')
else:
print(str(jahr) + ' ist kein Schaltjahr')
Alles richtig, allerdings finde ich die Klammerführung gedanklich irgendwie komisch. Ich fände
if jahr % 4 == 0 and (jahr % 100 != 0 or jahr % 400 == 0) :
naheliegender, aber vermutlich Geschmackssache. 😉