#python-3.x
#python-3.x
Вопрос:
Учитывая две даты, введенные пользователем, он находит количество крисов в заданном интервале, которые приходятся на будние дни, о чем я подумал:
import datetime
startmonth=int(input())
startday=int(input())
startyear=int(input())
endmonth=int(input())
endday=int(input())
endyear=int(input())
startdate=date(startyear,startmonth,startday)
enddate=date(endyear,endmonth,endday)
def Christmas(startyear,endyear):
cs=0
while startyear <= endyear:
if (date(startyear, 12,25).weekday())<5:
cs=cs 1
startyear=startyear 1
else:
startyear=startyear 1
return cs
print("the total number of chirstmas days on a weekday is", Christmas(startyear,endyear))
но он просто возвращает 0 независимо от того, какой ввод. какие-либо предложения / улучшения для этого?
Комментарии:
1. Вероятно, это должно быть
return cs
Christmas
вместоreturn bday
(что в любом случае нигде не определено).2. мой плохой! просто изменил некоторые переменные и забыл это изменить. та же проблема сохраняется даже при исправлении
Ответ №1:
Вы неправильно определяете код.
def Christmas(startyear,endyear):
cs=0
while startyear <= endyear:
if (date(startyear, 12,25).weekday())<5:
cs=cs 1
startyear=startyear 1
else:
startyear=startyear 1
return cs
print(Christmas(2010, 2020)) # 8
Комментарии:
1. к сожалению, по-прежнему выводится 0.
2. Вызов функции типа Рождество (2010, 2020) дает мне 8 в качестве выходных данных. Получаете ли вы 0 для одного и того же вызова функции?