首页 > 解决方案 > 年到世纪的功能代码理解

问题描述

给定一年,返回它所在的世纪。第一个世纪从第 1 年到第 100 年,第二个世纪从第 101 年到第 200 年,包括第 200 年。对于年 = 1905,输出应该为 CenturyFromYear(year) = 20。对于 year = 1700,输出应为 CenturyFromYear(year) = 17。

解决方案:

def centuryFromYear(year):
    if year % 100 == 0:
        return year/100
    else:
        return int(year/100) + 1

我尝试了以下代码:

def centuryFromYea(year):
    return year % 100

我尝试了其他解决方案并收到错误。我需要解释为什么 if 语句设置为等于 0 并且如果为 true 返回 year/100。我还需要对 else 返回的解释。

标签: pythonpython-3.x

解决方案


year % 100value 与year / 100 ONLY if相同year % 100 == 0

示例:如果 year 是 2000,则两个表达式都将返回 20。

如果不是这种情况,则意味着年份不是 100 的整数倍。

%(取模)运算符产生第一个参数除以第二个参数的余数。数字参数首先转换为通用类型。零右参数引发 ZeroDivisionError 异常。参数可以是浮点数,例如,3.14%0.7 等于 0.34(因为 3.14 等于 4*0.7 + 0.34。)模运算符总是产生与第二个操作数(或零)具有相同符号的结果;结果的绝对值严格小于第二个操作数的绝对值 [2]。


推荐阅读