如果给出了第一个日期,如何找到该月每个日期的星期几?

How to find day of the week for each date of that month if the day of first date is given?

如果第一天是那个月的星期五,我需要找到该月的每一天的日期。需要编写一个名为 returnDay 的函数,它将接受一个参数,即当月的日期。日期应在 1 到 31 的范围内。当我输入月份的日期时,必须调用 returns 今天的函数。如果实参小于1或大于31,则提示输入不可用当月日期

所以我的问题是如何将 1-31 范围放在这里,每当我 运行 this 时它显示 name 'date' is not defined 是什么问题?

      def returnDay(date):
         day_names= ['Sunday','Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
         day= input("Enter first day of the month: ")
         date = int(input('please enter the date of October: '))
         i = date%7 -1 
         if day in day_names:
                j = day_names.index(day)+i
                if j >= 7:
                    j = j - 7
                return(day_names[j])
print(returnDay(date))

我发现您的代码中存在一些问题。从您调用 returnDay(date) 的方式来看,您似乎希望将日期作为此函数的参数。您无法从还需要日期作为参数的同一函数中检索用户输入的日期。因此,首先重写您的代码,以便您从该函数范围之外设置输入,然后将其提供给您的函数进行处理。日期的整数部分也是如此。现在计算天数背后的逻辑 return:

  1. 第一天有用户供应
  2. 用户提供当前日期

走吧

    def returnDay(firstDay,currentDate):

    days_in_week = ['Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 
    'Saturday', 'Sunday']

    day_offset = 0    

    for i in range(7):
        if firstDay == days_in_week[i]:
            day_offset += i

    index_days_in_week = (currentDate + day_offset)%7 - 1

    return days_in_week[index_days_in_week]


    def main():

        firstDay = input("supply the first day of the month")
        currentDate = input("supply current day of the month")
        returnDay(firstDay, currentDate)

main()

您可能需要对其进行优化才能完全正常工作。我把这个作为作业评估留给你。