【Python CheckiO 题解】Time Converter (12h to 24h)
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)相关推荐
- Python CheckiO 题解系列 丨 博客目录索引
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本题解系列主要记录自己在用 Python 闯关时的做 ...
- 【Python CheckiO 题解】Time Converter (24h to 12h)
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Date and Time Converter
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Army Battles
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Largest Rectangle in a Histogram
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Roman Numerals
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Probably Dice
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Multicolored Lamp
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Speech Module
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
最新文章
- [C#]非阻塞监听键盘输入
- TensorFlow学习笔记:共享变量
- Android应用程序运行方式以及优先级
- 编写sonar 插件:No SqaleSubCharacteristic annotation was found on class xxx
- 学习Java的深拷贝和浅拷贝
- [Spring MVC] - InitBinder验证
- flink java生成流式数据
- sql 计数_SQL不同,SQL计数不同,SQL选择不同
- CentOS下安装JDK6u30
- SQL删除重复数据并只保留一条
- dtcms php,GitHub - k-dou/dtcms: 基于thinkphp5.1 的CMS,可快速搭建博客、企业站。
- ARM 体系架构及其工作原理
- 手机电视标准对峙激化
- 树莓派支持的最小linux,世界上最小的电脑:树莓派
- 项目管理知识体系指南 (八)
- JavaWeb-狂神-P11
- 操作系统——文件管理
- 2018ChinaJoy万代南梦宫展区的高光时刻
- [PMZL]第1卷-误入天庭-02
- 使用face++接口实现人脸相似度比对
热门文章
- javaweb基础(40)_jdbc框架
- iOS OC语言: Block底层实现原理
- mysql command line client闪一下消失
- (IOS)截图Demo
- Java程序员的推荐阅读书籍
- [Leedcode][JAVA][第974题][和可被K整除的子数组][前缀和][HashSet]
- GOOGLE HACKING 系列文章 【FreeXploiT整理收集】
- RT-Thread设备框架学习感悟
- android serialport new 软件退出_基于Android9.0,了解Android启动流程
- ubuntu开机出现错误“Error found when loading /root/.profile”解决