针对于这种问题一般先寻找逻辑,七月都是三十一天,就将周一到周日循环排列三十一次,每次排列结束后判断三十一个数中是否是四个周五,四个周二,否则退出,废话不多说直接上代码
# 七月有两个周五,两个周二,七月一周几?
# 七月一共三十一天
day = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] # 准备好循环的内容
while True:
# 周一到周日排列循环31天
data_day = [] # 循环错误一次后将列表清空,重新计算
while True:
for i2 in range(7):
data_day.append(day[i2-1]) # 循环七次将周一至周日添加到data_day列表中
if len(data_day) == 31: # 如果data_day列表满足31位数就跳出,防止最后一次添加周数时添加过多
break # 跳出for循环
if len(data_day) == 31: # 判断data_day长度是否满足31位数,是则跳出
break
# 循环好一个月31天开始判断各周几出现的次数——使用字典
dict_data = {} # 建立一个字典,用来判断各周数出现的次数
for key in data_day:
dict_data[key] = dict_data.get(key, 0) + 1
if dict_data['周二'] == 4 and dict_data['周五'] &#