def weekends_between(d1,d2):
    days_between = (d2-d1).days
    weekends, leftover = divmod(days_between,7)
    if leftover:
        start_day = (d2-timedelta(leftover)).isoweekday()
        end_day = start_day+leftover
        if start_day<=6 and end_day>6:
            weekends +=.5
        if start_day<=7 and end_day>7:
            weekends +=.5
    return weekends
 
参考使用:weekends_between(date(2004,10,1),date(2004,10,10))