import datetime
sum=0
start=datetime.date(2000,1,1)
end=datetime.date(2020,10,1)
days=datetime.timedelta(days=1)
while(start<=end):
if start.day==1 | start.weekday()==0:
sum+=2
else:
sum+=1
start+=days
print(sum)
import datetime
sum=0
start=datetime.date(2000,1,1)
end=datetime.date(2020,10,1)
days=datetime.timedelta(days=1)
while(start<=end):
if start.day == 1 or start.weekday() == 0:
sum+=2
else:
sum+=1
start+=days
print(sum)
import datetime
sum=0
start=datetime.date(2000,1,1)
end=datetime.date(2020,10,1)
days=datetime.timedelta(days=1)
while(start<=end):
if (start.day==1) | (start.weekday()==0):
sum+=2
else:
sum+=1
start+=days
print(sum)
if start.day==1 or start.weekday()==0:
这个是 比较
start.day 为 1 或者 start.weekday() 为 0
结果为 8879
if (start.day==1) | (start.weekday()==0):
结果为 8879
if start.day==1 | start.weekday()==0:
或者可以解读为:
if start.day== (1 | start.weekday() )==0:
因为 | 有优先权。结果变成:
start.day== (1 | start.weekday() )==0
start.day== true ==0
而答案永远都是否。
7580 刚好是 2000,1,1 -- 2020,10,1 (包含开始和结束日期)
| 是逻辑运算用的,优先度是最高的。所以1和start。weekday()会先被放到一起运算。
但是or会把前后两个语句在判断的时候用到整体