python3面试题:输入一个时间段,a=202103,b=202105,输出列表["2021-03","2021-04","2021-05"]
面试题
输入一个时间段,a=202103,b=202105,
输出列表:["2021-03","2021-04","2021-05"]
实现代码
# 输入一个时间段,a=202103,b=202105,
# 输出列表["2021-03","2021-04","2021-05"]
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
def out(a=202103, b=202105):
if len(str(a)) != 6 or len(str(b)) != 6:
print("参数不合法")
return []
if not str(a).isdigit() or not str(b).isdigit():
print("a,b需传纯数字类型")
return []
a1 = str(a)[:4]
a2 = str(a)[4:]
b1 = str(b)[:4]
b2 = str(b)[4:]
# print(a1, a2, b1, b2)
result = []
if int(b1) == int(a1):
if int(a2) <= int(b2):
for i in range(int(a2), int(b2)+1):
result.append('%s-%02d'%(b1, i))
else:
print("起始月份不能大于结束月份")
elif int(b1) > int(a1):
for i in range(int(a1), int(b1)+1):
# 判断是起始年
if int(a1) == i:
for j in range(int(a2), 12+1):
result.append('%s-%02d'%(a1, j))
# 判断是最后一年
elif int(b1) == i:
for j in range(1, int(b2)+1):
result.append('%s-%02d'%(b1, j))
# 中间的年份
else:
for j in range(1, 12+1):
result.append('%s-%02d'%(i, j))
else:
print("起始年份不能大于结束年份")
return result
if __name__ == '__main__':
print(out())
print(out(a=202001, b=202103))
运行结果
['2021-03', '2021-04', '2021-05']
['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02', '2021-03']
标签:
面试题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具