如何判断数字是否以0结尾?Python实现24小时10分钟间隔循环求助
两个问题的解决方案:判断数字结尾&按10分钟间隔遍历全天时间
首先来解决第一个小问题:判断数字是否以0结尾。
其实有两种简单的方法:
- 用数学取模运算:如果一个数字对10取余等于0,那它就是以0结尾的(注意0本身也满足这个条件,如果你的场景里要排除0,可以额外加判断)。代码示例:
def ends_with_zero(num): return num % 10 == 0 # 测试 print(ends_with_zero(10)) # True print(ends_with_zero(25)) # False print(ends_with_zero(0)) # True(如果需要排除可以加`num != 0`) - 如果你的数字是字符串形式,或者想转成字符串处理,可以用
endswith()方法:def ends_with_zero(num): return str(num).endswith('0')
接下来是你的核心需求:按10分钟间隔遍历全天24小时的时间,不需要处理日期。
Python的datetime模块其实可以搞定,只是需要小技巧避开日期的干扰。这里有两种思路:
思路1:直接计算分钟数(最简洁)
全天总共有1440分钟(24*60),我们可以从0开始,每次步进10分钟,直接计算对应的小时和分钟,然后格式化输出:
for total_minutes in range(0, 24*60, 10): hours = total_minutes // 60 mins = total_minutes % 60 # 格式化为HH:MM的24小时制字符串 time_str = f"{hours:02d}:{mins:02d}" print(time_str) # 这里可以加入你的业务逻辑,比如处理这个时间点
这种方法完全不需要碰日期,纯数值计算,简单高效。
思路2:用datetime模块处理(更面向对象)
如果你习惯用datetime的时间对象来操作,可以借助一个虚拟的日期(比如当天),然后通过timedelta来累加10分钟,最后只提取时间部分:
from datetime import datetime, timedelta # 起始时间:当天的00:00 current_time = datetime.combine(datetime.today(), datetime.min.time()) end_time = current_time + timedelta(days=1) while current_time < end_time: # 只提取时间部分,忽略日期 time_only = current_time.time() print(time_only.strftime("%H:%M")) # 累加10分钟 current_time += timedelta(minutes=10)
这样得到的time_only是datetime.time对象,方便后续如果需要和其他时间对象交互的场景。
两种方法都能满足你的需求,选哪种取决于你的业务场景更适合数值计算还是面向对象的时间操作。
内容的提问来源于stack exchange,提问作者user7795844
相关产品推荐
相关产品推荐

