python - 年到世纪的功能代码理解
问题描述
给定一年,返回它所在的世纪。第一个世纪从第 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 返回的解释。
解决方案
year % 100
value 与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]。
推荐阅读
- javascript - 是否可以使用引用作为反应组件的道具或状态?
- javascript - 如何将 JavaScript 符号转换为没有“符号(”前缀的字符串?
- python - 模板中的 Django POST 请求(没有表单或更好的解决方案)
- php - mkdir(): 不是目录 PHP
- android - 如何在现有的自定义视图上绘制一些东西?
- logging - 如何禁用出现在控制台上的点燃横幅?
- ruby-on-rails - 为什么这个语句会抛出“意外结束”的错误?
- python - 如何一次并行执行多个 pytest 套件(文件)
- javascript - bExpress bodyparser 配置不正确
- android - android保持Cast Volume通知处于暂停状态