今天在解一道codewars的题目的时候,被divmod的作用吸引到了。

题目是这样的:

Write a function, which takes a non-negative integer (seconds) as input

and returns the time in a human-readable format (HH:MM:SS)

HH = hours, padded to 2 digits, range: 00 - 99

MM = minutes, padded to 2 digits, range: 00 - 59

SS = seconds, padded to 2 digits, range: 00 - 59

The maximum time never exceeds 359999 (99:59:59)

You can find some examples in the test fixtures:

Test.assert_equals(make_readable(0), "00:00:00")

Test.assert_equals(make_readable(5), "00:00:05")

Test.assert_equals(make_readable(60), "00:01:00")

Test.assert_equals(make_readable(86399), "23:59:59")

Test.assert_equals(make_readable(359999), "99:59:59")

就是按照输入的秒数,按照要求返回字符串。

我一开始陷入了错误的思路,想按范围判断,10秒以下的怎么输出,10秒以上的怎么输出,分钟和小时类似。要写一大堆的elif。

实际上,只要使用02d就可以解决:

02d formats an integer (d) to a field of minimum width 2 (2),

with zero-padding on the left (leading 0):

稍微易于理解的解法:

def make_readable(seconds):

minutes, seconds = divmod(seconds, 60)

hours, minutes = divmod(minutes, 60)

res = '%02d:%02d:%02d' %(hours, minutes, seconds)

return res

在提交之后,发现更简洁的解法:

def make_readable_best(s):

return '{:02}:{:02}:{:02}'.format(s / 3600, s / 60 % 60, s % 60)

真是受教颇深!

python中divmod的意思是_Python: divmod的神奇作用相关推荐

  1. python中class __str__怎么用_python中下划线的作用

    学习python的时候,我们经常碰到一些变量的变量名带单下划线/双下划线前缀或者后缀,然后会觉得这样的命名风格很奇怪.除了变量命名风格外,也会遇到下划线的表达式,也会让人摸不着头脑.今天我们就来看下, ...

  2. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  3. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  4. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  5. python中div是什么意思_python中divmod是什么

    python中divmod是什么?下面给大家带来divmod的相关介绍. divmod函数是Python的内置函数,它可以把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a ...

  6. python中的除法怎么表示_Python中的除法

    在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分).例如 int a=15/10; a的结果为1. 同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要 ...

  7. python中get和set使用_Python对象属性的set和get方法

    属性的set和get方法 如果有一个对象,当需要对其进行修改属性时,有2种方法: 1.对象名.属性名 = 数据 -->直接修改 2.对象名.方法名() -->间接修改 为了更好的保存属性安 ...

  8. python中if else语句用法_python中if及if-else如何使用

    if 结构 if 结构允许程序做出选择,并根据不同的情况执行不同的操作 基本用法 比较运算符 根据 PEP 8 标准,比较运算符两侧应该各有一个空格,比如:5 == 3. PEP8 标准 ==(相等) ...

  9. python中的队列和栈_python的队列和栈

    (一)队列和栈的区别 1.队列: 队列是一种特殊的线性表.其两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端 ...

最新文章

  1. 同步轨道进入过程_工业轨道运输车_液压升降型轨道平车的应用
  2. P3690-[模板]Link Cut Tree(动态树)【Splay】
  3. 使用Google Guava Cache进行本地缓存
  4. 新浪微博之我要看大图插件 v1.3.2.6
  5. 数据结构知识点大汇总(五)
  6. 大数据_MapperReduce_Hbase的优化和Hbase相关面试题_以及hbase的javaapi的一部分源码---Hbase工作笔记0029
  7. 扒开医院的围墙,互联网怎么个战法?
  8. 警告:MySQL-server-5.6.26-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
  9. EasyUI 二级联动
  10. <2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(七)—— 终篇总结
  11. JAVA / JS 中关于this和that
  12. 利用opencv-python绘制多边形框或(半透明)区域填充(可用于分割任务mask可视化)
  13. 李沐动手学深度学习V2-BERT微调和代码实现
  14. 年轻人的第一个桌面应用
  15. CentOS7的Tiger VNC设置
  16. python爬虫 打击无良网站弹窗广告
  17. 关于左右布局,一边高度不定,另一边和不定高度等高的CSS布局
  18. 电磁手术导航系统市场现状及未来发展趋势
  19. MTK Android N 源码Rom Root
  20. 基于图神经网络的节点表征

热门文章

  1. (python)企业发放的奖金根据利润来确定提成比例
  2. 公司福利 年终 节日奖励 平时福利
  3. SQL server学习_两表对照
  4. C语言strcmp()函数:比较两个字符串
  5. SQL server——卸载
  6. centos上开启6379端口
  7. python代码对齐快捷键_PyCharm 格式化代码 常用快捷键
  8. 你也可以手绘二维码(二)纠错码字算法:数论基础及伽罗瓦域GF(2^8)
  9. 小学数学与计算机整合课优质教案,深研数学教材,目标精准把握 记“小学数学拓展性、整合性课程——基于数学的拓展课程”片区教研活动...
  10. 电话销售通过哪些方面可以抓住客户心理变化