问题:给定一年,返回它所在的世纪。第一个世纪从 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/

10-13 06:56