Python 如何用==int判断是否是闰年
Python how to check if it is a leap year with ==int
def leapyear(year):
if year/400 == int :
return False
if year/100 == int :
return False
if year/4 == int :
return True
你好我想知道为什么我的代码不能使用它 == to int 因为本质上它与使用模和 == to 0 是一样的这只是我遇到的一个问题。
def check(n): if n > 200: return "large"
x = n/2 if x !=int: return "odd"
elif x==0 and n< 100: return "small"
elif x==0 and n>100: return "medium"
另外这里的 int 是怎么工作的
您检查的是直接号码,而不是它的类型。你应该使用....
if type(year/400) == int :
Then here is the conditional block.
elif type(year/100) == int:
Another Conditional check
elif type(year/4) == int:
Another conditional block.
你也有一个逻辑错误请看下面给出的完整代码。
所以你的函数可以用正确的逻辑重写为...
def leap_year(year):
if type(year/400) == int :
return False
elif type(year/100) == int:
return False
elif type(year/4) == int:
return False
else:
return True
这是完整代码。
在Python中int被认为是Class。您可以在变量上使用 type() 函数来获取它在 Python 中的数据类型。因此,要使用您的逻辑,您必须按如下方式重写代码:
def leapyear(year):
if type(year/400) == int :
return False
if type(year/100) == int :
return False
if type(year/4) == int :
return True
注意:我刚刚通过在必要时添加 type() 函数来复制您的代码,但建议使用 if、elif 和 else 而不是 if,因为它会优化您的代码。
您的问题是 int
是 type
。如果你试图将一个数字与一种类型的对象进行比较,这就是你在写 if year/400 == int :
时所做的,它总是 return False
,因为它们永远不会相同。
检查 year/400
是否为整数的更好方法是:
if year%400 == 0:
return False
这是说:
如果year/400
的余数等于0,returnFalse
,这就是你想要的。
其他一些是:
在大多数情况下,您应该使用 elif
而不是 if
。在这一个中,这无关紧要,因为 return
语句提前终止了函数的执行,但无论如何您仍然应该使用它。否则,即使您获得了最终结果,它也会通过 if
语句的其余部分。
另一件事与您的代码无关,但您的闰年标准不正确。如果年份可以被 4 整除,则为闰年。
除非年份可以被 100 整除,否则不能。
除非能被400整除,否则就是。
改进代码:
def leapyear(year):
if year%400 == 0:
return True
elif year%100 == 0:
return False
elif year%4 == 0:
return True
return False
你应该知道如果使用 '/' 输出是 FLOAT。
例如
2020/400 -> 5.05
2020/100 -> 20.2
2020/4 -> 505
您必须像使用 int()
一样更改类型
例如
2020/400 -> 5.05 int(2020/400) -> 5
2020/100 -> 20.2 int(2020/100) -> 20
2020/4 -> 505 int(2020/4) -> 505
from __future__ import division
import sys
time_year = int(sys.argv[1])
def leapyear(year):
if (year/400) == int(year/400) :
result = False
elif (year/100) == int(year/100) :
result = False
elif (year/4) == int(year/4) :
result = True
else :
result = 'something worg'
return result
a=leapyear(time_year)
print a
希望能帮到你:)
year = int(input("Enter a 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))
您可以通过返回 True
或 False
来检查年份是否为闰年
不使用任何库。
(lambda year : (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))(2020)
def leapyear(year):
if year/400 == int :
return False
if year/100 == int :
return False
if year/4 == int :
return True
你好我想知道为什么我的代码不能使用它 == to int 因为本质上它与使用模和 == to 0 是一样的这只是我遇到的一个问题。
def check(n): if n > 200: return "large"
x = n/2 if x !=int: return "odd"
elif x==0 and n< 100: return "small"
elif x==0 and n>100: return "medium"
另外这里的 int 是怎么工作的
您检查的是直接号码,而不是它的类型。你应该使用....
if type(year/400) == int :
Then here is the conditional block.
elif type(year/100) == int:
Another Conditional check
elif type(year/4) == int:
Another conditional block.
你也有一个逻辑错误请看下面给出的完整代码。 所以你的函数可以用正确的逻辑重写为...
def leap_year(year):
if type(year/400) == int :
return False
elif type(year/100) == int:
return False
elif type(year/4) == int:
return False
else:
return True
这是完整代码。
在Python中int被认为是Class。您可以在变量上使用 type() 函数来获取它在 Python 中的数据类型。因此,要使用您的逻辑,您必须按如下方式重写代码:
def leapyear(year):
if type(year/400) == int :
return False
if type(year/100) == int :
return False
if type(year/4) == int :
return True
注意:我刚刚通过在必要时添加 type() 函数来复制您的代码,但建议使用 if、elif 和 else 而不是 if,因为它会优化您的代码。
您的问题是 int
是 type
。如果你试图将一个数字与一种类型的对象进行比较,这就是你在写 if year/400 == int :
时所做的,它总是 return False
,因为它们永远不会相同。
检查 year/400
是否为整数的更好方法是:
if year%400 == 0:
return False
这是说:
如果year/400
的余数等于0,returnFalse
,这就是你想要的。
其他一些是:
在大多数情况下,您应该使用 elif
而不是 if
。在这一个中,这无关紧要,因为 return
语句提前终止了函数的执行,但无论如何您仍然应该使用它。否则,即使您获得了最终结果,它也会通过 if
语句的其余部分。
另一件事与您的代码无关,但您的闰年标准不正确。如果年份可以被 4 整除,则为闰年。 除非年份可以被 100 整除,否则不能。 除非能被400整除,否则就是。
改进代码:
def leapyear(year):
if year%400 == 0:
return True
elif year%100 == 0:
return False
elif year%4 == 0:
return True
return False
你应该知道如果使用 '/' 输出是 FLOAT。
例如
2020/400 -> 5.05
2020/100 -> 20.2
2020/4 -> 505
您必须像使用 int()
一样更改类型
例如
2020/400 -> 5.05 int(2020/400) -> 5
2020/100 -> 20.2 int(2020/100) -> 20
2020/4 -> 505 int(2020/4) -> 505
from __future__ import division
import sys
time_year = int(sys.argv[1])
def leapyear(year):
if (year/400) == int(year/400) :
result = False
elif (year/100) == int(year/100) :
result = False
elif (year/4) == int(year/4) :
result = True
else :
result = 'something worg'
return result
a=leapyear(time_year)
print a
希望能帮到你:)
year = int(input("Enter a 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))
您可以通过返回 True
或 False
来检查年份是否为闰年
不使用任何库。
(lambda year : (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))(2020)