CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【Time Converter (12h to 24h)】:此题与 Time Converter (24h to 12h) 类似,不同的是原来是24小时制转12小时制,现在是12小时制转24小时制,输出格式应为“hh:mm”,如果输出小时数小于10,则在其前添加“0”,如:“09:05”。

【链接】:https://py.checkio.org/mission/time-converter-12h-to-24h/

【输入】:12小时格式的时间(字符串)

【输出】:24小时制的时间(字符串)

【前提】:‘00:00’ <= time <= ‘23:59’

【范例】

time_converter('12:30 p.m.') == '12:30'
time_converter('9:00 a.m.') == '09:00'
time_converter('11:15 p.m.') == '23:15'

解题思路

利用时间模块 time 对字符串进行处理,由于模块不支持 a.m.p.m. 的解析,所以先用 replace() 方法将其替换成 AM 或者 PM

利用使用 time.strptime() 方法把原始的时间字符串按照 %I:%M %p(12小时制小时:分钟数 本地化的 AM 或 PM)的格式解析为时间元组

使用 time.strftime() 方法接收时间元组,按照 %H:%M(24小时制小时:分钟数)的格式转换为可读字符串

代码实现

import timedef time_converter(init_time):init_time = init_time.replace('a.m.', 'AM').replace('p.m.', 'PM')init_time = time.strptime(init_time, '%I:%M %p')init_time = time.strftime('%H:%M', init_time)return init_timeif __name__ == '__main__':print("Example:")print(time_converter('12:30 p.m.'))#These "asserts" using only for self-checking and not necessary for auto-testingassert time_converter('12:30 p.m.') == '12:30'assert time_converter('9:00 a.m.') == '09:00'assert time_converter('11:15 p.m.') == '23:15'print("Coding complete? Click 'Check' to earn cool rewards!")

大神解答

大神解答 NO.1

def time_converter(time):h, m = map(int, time[:-5].split(':'))return f"{h % 12 + 12 * ('p' in time):02d}:{m:02d}"

大神解答 NO.2

import timedef time_converter(now):return time.strftime('%H:%M', time.strptime(now.replace('.', ''), '%I:%M %p'))

大神解答 NO.3

from time import strptime as p, strftime as ftime_converter = lambda t: f("%H:%M", p(t.replace('.', ''), "%I:%M %p"))

【Python CheckiO 题解】Time Converter (12h to 24h)相关推荐

  1. Python CheckiO 题解系列 丨 博客目录索引

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本题解系列主要记录自己在用 Python 闯关时的做 ...

  2. 【Python CheckiO 题解】Time Converter (24h to 12h)

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  3. 【Python CheckiO 题解】Date and Time Converter

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  4. 【Python CheckiO 题解】Army Battles

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  5. 【Python CheckiO 题解】Largest Rectangle in a Histogram

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  6. 【Python CheckiO 题解】Roman Numerals

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  7. 【Python CheckiO 题解】Probably Dice

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  8. 【Python CheckiO 题解】Multicolored Lamp

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

  9. 【Python CheckiO 题解】Speech Module

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

最新文章

  1. [C#]非阻塞监听键盘输入
  2. TensorFlow学习笔记:共享变量
  3. Android应用程序运行方式以及优先级
  4. 编写sonar 插件:No SqaleSubCharacteristic annotation was found on class xxx
  5. 学习Java的深拷贝和浅拷贝
  6. [Spring MVC] - InitBinder验证
  7. flink java生成流式数据
  8. sql 计数_SQL不同,SQL计数不同,SQL选择不同
  9. CentOS下安装JDK6u30
  10. SQL删除重复数据并只保留一条
  11. dtcms php,GitHub - k-dou/dtcms: 基于thinkphp5.1 的CMS,可快速搭建博客、企业站。
  12. ARM 体系架构及其工作原理
  13. 手机电视标准对峙激化
  14. 树莓派支持的最小linux,世界上最小的电脑:树莓派
  15. 项目管理知识体系指南 (八)
  16. JavaWeb-狂神-P11
  17. 操作系统——文件管理
  18. 2018ChinaJoy万代南梦宫展区的高光时刻
  19. [PMZL]第1卷-误入天庭-02
  20. 使用face++接口实现人脸相似度比对

热门文章

  1. javaweb基础(40)_jdbc框架
  2. iOS OC语言: Block底层实现原理
  3. mysql command line client闪一下消失
  4. (IOS)截图Demo
  5. Java程序员的推荐阅读书籍
  6. [Leedcode][JAVA][第974题][和可被K整除的子数组][前缀和][HashSet]
  7. GOOGLE HACKING 系列文章 【FreeXploiT整理收集】
  8. RT-Thread设备框架学习感悟
  9. android serialport new 软件退出_基于Android9.0,了解Android启动流程
  10. ubuntu开机出现错误“Error found when loading /root/.profile”解决