问题:给定一年,返回它所在的世纪。第一个世纪从 1 年到 100 年,第二个 - 从 101 年到 200 年,以此类推。
我的代码:
def centuryFromYear(year):
century = year/100
decimal = int(str(century[-2:-1]))
integer = int(str(century)[:2])
if decimal > 0:
return integer + 1
else:
return integer
print(centuryFromYear(2017))
这在某些情况下似乎不起作用。就像 year = 2001 或 year = 2000 一样。
谁能提供更简单的代码?
最佳答案
您可以在python 3中使用整数除法,运算符//
:
def centuryFromYear(year):
return (year) // 100 + 1 # 1 because 2017 is 21st century, and 1989 = 20th century
print(centuryFromYear(2017)) # --> 21
请注意: 这不考虑公元前世纪,它在
Dec 31st xy99
使用截止日期,有时严格定义为 Dec 31st xy00
more info here如果您想在更严格的
Dec 31st xy00
上设置截止值,您可能想要这样做:def centuryFromYear(year):
return (year - 1) // 100 + 1 # 1 because 2017 is 21st century, and 1989 = 20th century
print(centuryFromYear(2017)) # --> 21
关于python - 年到世纪函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46356820/