I just started learning python and I'm working on a personal mini project in which I want to print with as little code as possible a certain string depending on the date the user enters. (ex: monday = day1/firstday/montag)
import datetime
from datetime import datetime
import calendar
my_answer = input("Enter date: (yyyy-mm-dd) ")
my_date = datetime.strptime(my_answer, "%Y-%m-%d")
year, week_num, day_of_week = my_date.isocalendar()
day_name = calendar.day_name[my_date.weekday()]
new_day = day_name.replace("Monday", "Day 1")
#new_day = day_name.replace("Tuesday", "Day 2")
# new_day = day_name.replace("Wednesday", "Day 3")
# new_day = day_name.replace("Thursday", "Day 4")
# new_day = day_name.replace("Friday", "Day 5")
# new_day = day_name.replace("Saturday", "Day 6")
# new_day = day_name.replace("Sunday", "Day 7")
print( "The date " str(my_answer) " is " new_day " of the week " str(week_num))
CodePudding user response:
You need re.sub
import re
string = 'Monday aaj montag nahi kal tha usko day1 ya firstdaybhi bolsakte hain'
new_string = re.sub(r'day1|firstday|montag', 'Monday', string)
print(new_string)
r'day1|firstday|montag'
is just a regular expression. You can read more about it here https://docs.python.org/3/library/re.html
CodePudding user response:
In your code, there is not much to change. But, I highly suggest you use dateutil
object in order to parse the input date:
from dateutil.parser import parse
# Rest of the code
my_date = parse(input("Enter date: (yyyy-mm-dd) "))
# Rest of the code
parse
is a function that automatically reformats date-strings into date objects. Meaning, you do not need to define the date patter ("%Y-%m-%d"). Also, if you put a string like My date is as what follows: 1998-07-08
, it finds the date ("1998-07-08") intelligently.