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