2017-05-22 2 views
0

neu zu unterrichten python zu yr10. Dies scheint zu funktionieren, wenn dem Endbenutzer mitgeteilt wird, ob das Jahr ein Schaltjahr ist oder nicht. Aber kann jemand bitte bestätigen, ob dieser Code funktioniert oder der beste Weg, dies zu tun. Ich weiß, es gibt wahrscheinlich verschiedene Methoden ... Johnny :)leapyear python task für studenten

leapYear = int(input("what year is it?:")) 

if (leapYear %4) == 0: 
    print ("Thats a leap year") 

elif (leapYear %100)==0: 
    print ("thats not a leap year") 

elif (leapYear % 400)== 0: 
     print ("Thats a leap year") 

else: 
    print("thats not a leap year") 
+2

Der beste Weg zu überprüfen, ob Ihr Code funktioniert, ist es zu testen. Führen Sie es mit allen Arten von Eingaben und prüfen Sie, ob es die richtige Antwort gibt. – DyZ

+3

Ihr Code hat logische Fehler, es identifiziert "100" fälschlicherweise als Schaltjahr. Sie müssen die Reihenfolge berücksichtigen, in der Sie Ihre Bedingungen bewerten, z. Wenn 'leapYear = 400', dann stimmt es mit allen Bedingungen überein, welche zuerst ausgewertet werden sollten? – AChampion

+0

Ich denke, deine Elifs sind überflüssig. Sie brauchen auch nicht die Klammern in Ihrem if. –

Antwort

1

Hier werden drei alternative Möglichkeiten sind für ein Schaltjahr in Python zu überprüfen, mit der zweiten Methode eine verbesserte Version des eigenen Versuchs zu sein:

1) Mit calendar:

import calendar 

calendar.isleap(year) 

2) ähnlich wie bei Ihrem eigenen Versuch, aber die redundanten Schritte unternehmen und es in ein Verfahren Umwandlung:

def is_leap_year(year): 
    if year % 100 == 0: 
     return year % 400 == 0 
    return year % 4 == 0 

3) Überprüfen Sie, ob das Jahr ein einen 29. Februar mit datetime zur Verfügung gestellt hat:

import datetime 

def is_leap_year(year): 
    try: 
     datetime.date(year, 2, 29) 
    except ValueError: 
     return False 
    return True 

N. B. Versuchen Sie, Ihren Schülern beizubringen, snake_case in Python-Code statt camelCase zu verwenden.

Verwandte Themen