如果在创建闰年程序时 python 程序中的函数无法正常工作

if else not working properly in functions in python program in creating leap year program

def is_leap(year):
    if year % 4 == 0:
        print("year is a leap year")
    elif year % 400 == 0:
        print("year is a leap year")
    elif year % 100 == 0:
        print("not a leap year")
    else:
        print("Not a leap year")

is_leap(2019)
  1. 这里我输入了 2019 年,它不是闰年,但我的程序没有让我知道如果你输入的是非闰年,它会给出 put 作为非闰年。
  2. 如果我的程序中有任何类型的错误,请告诉我。
  3. 这是我创建程序时使用的以下几点注意事项 -->
  4. 年份必须能被4整除;
  5. 如果年份也能被100整除,则不是闰年; 除非...
  6. 年份也能被400整除,那就是闰年

您忘记在 else 部分写 print。应该是:

print("Not a leap year")

首先,你的代码有错误,为了检查某一年是否是闰年,你应该遵循:

  1. 如果一个年份能被4整除就是没有余数那么进行下一步。如果不能被4整除,则不是闰年。例如:1997年不是闰年
  2. 如果年份可以被4整除,但不能被100整除。例如:2012年,是闰年。如果年份可以同时被 4 和 100 整除,则转到下一步。
  3. 如果年份可以被100整除,但不能被400整除。例如:1900,则不是闰年。如果年份能被两者整除,则为闰年。所以2000年是闰年

所以你需要使用嵌套的if-else语句。查看以下简单代码并尝试推断出您到底哪里做错了:

def is_leap(year):
    if (year % 4) == 0:
       if (year % 100) == 0:
           if (year % 400) == 0:
               print("{0} is a leap year".format(year))
           else:
               print("{0} is not a leap year".format(year))
       else:
           print("{0} is a leap year".format(year))
    else:
       print("{0} is not a leap year".format(year))
    return

is_leap(2019)

正如@Alexander Kononenko 所说,您在 else.

中缺少 print

Maybe try like this?

year = int(input("Input year: "))

if year % 4 == 0:
    print("Year is leap.")
    if year % 100 == 0 and year % 400 != 0:
        print("Year is common.")

else:
    print("Year is common.")