您可以这样操作:
import bisect
import datetime as dt
def get_quarter_begin():
today = dt.date.today()
qbegins = [dt.date(today.year, month, 1) for month in (1,4,7,10)]
idx = bisect.bisect(qbegins, today)
return str(qbegins[idx-1])
这解决了“第一种”情况;我将保留“最后一个”案例作为练习,但是为了清楚起见,我建议将其保留为一个独立的函数(对于您的原始版本,如果不传递任何参数,将会很奇怪!)。