問題 1 作為分析師,您必須展示客戶的季度業績結果。向您提供的資料是每天的。要完成此任務,您需要從給定日期中提取季度。例如:如果日期在 2020 年 1 月 1 日 - 2020 年 3 月 31 日之間,則需要提取相應的季度為“2020-Q1”
如果日期在 2020 年 4 月 1 日至 2020 年 6 月 30 日之間,則提取的季度將為“2020-Q2”
如果日期在 2020 年 7 月 1 日至 2020 年 9 月 30 日之間,則提取的季度將為“2020-Q3”
如果日期介于 2020 年 10 月 1 日至 2020 年 12 月 31 日之間,則提取的季度將為“2020-Q4”
uj5u.com熱心網友回復:
嗨,歡迎來到 stackoverflow。我相信這個對類似問題的回答肯定會對你有所幫助。
這是對上述答案的快速總結。基本上,您只需要檢查給定日期的月份并將其轉換為數字(1 到 12)。如果從中減去 1(因此它從 1 月的 0 到 12 月的 11)并使用整數除法將這個數字除以 3,您將獲得格式為 0 到 3 的季度資訊。如果您再次添加 1你會得到你正在尋找的正確季度。
或者使用從我上面鏈接的答案中獲取的python代碼:
def printQuarter(month):
print((month-1)//3 1)
printQuarter(1) # january, result: 1
printQuarter(4) # april, result: 2
printQuarter(12) # december, result: 4
或者,您當然可以使用 if-else 陳述句來解決此問題,正如您在問題中使用 if-statement 標簽所建議的那樣。這當然有效,但遠沒有那么優雅。如果由于某種原因你仍然想這樣做,你可以這樣做,例如:
if month <= 3:
print("Q1")
elif month <= 6:
print("Q2")
elif month <= 9:
print("Q3")
else:
print("Q4")
uj5u.com熱心網友回復:
用每個季度的“限制”定義一個字典。我會做這樣的事情:
from datetime import date
quarters = {
'2020-Q1': ((2020, 1, 1), (2020, 3, 31)),
'2020-Q2': ((2020, 4, 1), (2020, 6, 30)),
'2020-Q3': ((2020, 7, 1), (2020, 9, 30)),
'2020-Q4': ((2020, 10, 1), (2020, 12, 31))
}
def get_quarter(my_date):
try:
if not isinstance(my_date, date): #Check if the input is a date
raise TypeError
for quarter, limits in quarters.items():
if date(*limits[0]) <= my_date <= date(*limits[1]):
return quarter
except TypeError:
... # Handle exception
def main():
my_date = date(2020, 4, 15) #Define a valid input
print(get_quarter(my_date)) #Run the function
if __name__ == '__main__':
main()
這個例子列印出:
'2020-Q2'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364995.html
上一篇:檢查串列中的值是否出現在檔案中
