Re: [问题] 循环问题

楼主: TuCH (谬客)   2022-02-21 10:53:49
参考一下
错误处理就不写了
# 输入资料
my_date = input('Please input daterange ex: 2018/6~2019/12')
# 解析资料
start_date, end_date = my_date.split('~')
start_year, start_month = [int(i) for i in start_date.split('/')]
end_year, end_month = [int(i) for i in end_date.split('/')]
for year in range(start_year, end_year+1):
# 判断是否开始年或结束年
isStart = False
isEnd = False
if year == start_year:
isStart = True
elif year == end_year:
isEnd = True
for month in range(1,13):
# 总共有三种状态 开始年 结束年 中间年 分别写逻辑
if isStart :
if month >= start_month:
print(f'{year}/{month}')
elif isEnd :
if month <= end_month:
print(f'{year}/{month}')
else:
print(f'{year}/{month}')
※ 引述《skyleona (多益爆了!)》之铭言:
: 大家好,最近刚学python有循环问题想请教
: 用循环方式去依序将年份及月份列出来,月份设定为1时,输出正常:
:   for year in range(2000,2020):
: for month in range(1,13):
: print(str(year) + '/' + str(month) )
: 但是如果输入区间,就会出错,ex:2018/6~2019/12,就2019年只会列出6月之后的月份
:  请各位大大解惑,谢谢
作者: OnoderaHaru (小野寺春)   2022-02-21 14:45:00
开始年和结束年有可能是同一年喔
楼主: TuCH (谬客)   2022-02-21 15:37:00
摁摁 那就是多一个控件
作者: skyleona (多益爆了!)   2022-02-21 19:34:00
谢谢各位大大解答

Links booklink

Contact Us: admin [ a t ] ucptt.com