Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #620031587
- #Lab 1
- #Days in month and Day names lists
- month_days = [('January',[31]),('February',[28,29]),('March',[31]),
- ('April',[30]),('May',[31]),('June',[30]),('July',[31]),('August',[31]),
- ('September',[30]),('October',[31]),('November',[30]),('December',[31])]
- day_names = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
- #Problem 1
- #Function days_in_month
- #Arguments: Month
- #Returns: Days in month
- def days_in_month(month):
- #No empty strings
- if month == '':
- return "Enter a month"
- #Loop through month_days array
- for i in range(len(month_days)):
- #If month = first index of current month_days, return it
- if month == month_days[i][0]:
- return month_days[i][1]
- #Otherwise, do nothing
- else:
- pass
- #If month not found, return an error
- return "Not a valid month"
- #Problem 2
- #Function day_of_week
- #Arguments:Day, Month, Year
- #Returns: Day of week
- def day_of_week(d,m,y):
- #Add 12 to month and subtract 1 from year if month = Jan or Feb
- if m == 1 or m == 2:
- m+=12
- y-=1
- else:
- pass
- #Zeller's formula
- day = (((13*m+3) / 5 + d + y + (y /4) - (y / 100) + (y / 400)) %7)
- return day_names[day]
- #Problem 3
- #Function unlucky
- #Arguments: Year
- #Returns: Months of year with Friday 13th
- def unlucky(year):
- #Validate year
- if year < 0:
- return "Invalid year"
- else:
- #Return the unlucky dates in the year
- return [(i,j,year) for i in range(1,12) for j in range(1,31) if j == 13 and day_of_week(j,i,year) == 'Friday']
- #Problem 4
- #Function mostUnlucky
- #Arguments: None
- #Returns: Years with more than 3 unlucky days
- def mostUnlucky():
- #List for unlucky years
- unlucky_years = []
- #Loop through range
- for i in range(0,2010):
- #If unlucky dates > 2, add year to list
- if len(unlucky(i)) > 2:
- unlucky_years += [i]
- #Otherwise, do nothing
- else:
- pass
- #Return unlucky years as list
- return unlucky_years
Add Comment
Please, Sign In to add comment