今天在解一道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. 2022-2028年中国IT外包市场投资分析及前景预测报告
  2. 图像处理之基础---极坐标系及其与直角坐标系的关系
  3. android token过期怎么跳转登录_用sa-token轻松解决网站权限验证
  4. 洛谷 P1255 数楼梯 70
  5. ACM入门之【并查集】
  6. 【APICloud系列|11】使用APPuploader申请ios开发证书及ios发布证书教程
  7. Serverless 实战 —— 快速搭建 SpringBoot 应用
  8. 转载_模运算_归纳得很精华啊
  9. 将自己写的脚本添加至开机自启动服务和chkconfig的原理
  10. practice:在win2008R2上使用(NLB)网络负载均衡
  11. oracle安装完成后怎么这么多用户和表,下面哪个用户不是oracle缺省安装后就存在的用户...
  12. java读取文件(按字符或字节读取)
  13. 区块链Hyperledger Fabric背书过程中链码是并行还是串行?
  14. configure: error: C++ compiler cannot create executables
  15. java 网络爬虫_使用Java实现网络爬虫
  16. u盘中毒文件为html文档,u盘中毒文件被隐藏了?教你如何快速恢复隐藏文件
  17. 袋鼠过河问题(Java)
  18. mysql参数化查询 in_mysql in 查询参数化
  19. 几个简单的c语言程序,几个简单的C语言源程序.docx
  20. 常见硬件面试题(含答案)盘点,硬件工程师学习笔记

热门文章

  1. 全球五分之一的人听力受损,你有预防听力损伤吗?
  2. 基于ROS搭建简易软件框架实现ROV水下目标跟踪(二)--硬件框架简述
  3. 群英队与“转赚”系统介绍
  4. TRELLO操作文档
  5. 数字转人民币(大写汉字)读法(Python经典编程案例)
  6. CSS精灵图、字体图标、三角、鼠标样式、用户界面样式、溢出省略号
  7. 二分搜索(C语言代码)及解释
  8. 量子计算机叠加态的确定,用量子叠加态坍缩理论描述认知决策的过程
  9. MATLAB使用hough变换函数输出[H,theta,rho]的具体含义
  10. 2022年Android面试之Jetpack(AAC框架)篇