如何将数字转换为对应星期几?Python函数改写实现
解决方法
方法1:用列表映射星期数字与名称
直接定义一个包含星期英文名称的列表,根据传入的day_of_week数字作为索引取出对应名称(匹配你输入1对应Tuesday的规则):
def string(hour_of_day, day_of_week, date): # 索引0对应Monday,1对应Tuesday,以此类推 week_days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] print(f'{week_days[day_of_week]} {date} at hour {hour_of_day}')
调用string(12, 1, '2020/02/18')会输出:Tuesday 2020/02/18 at hour 12
方法2:从日期字符串直接解析星期名称(更准确)
既然已经传入了date参数,可直接用datetime模块解析日期字符串获取星期名称,不用手动维护数字映射,还能避免数字与名称不匹配的问题:
from datetime import datetime def string(hour_of_day, day_of_week, date): # 将日期字符串转为datetime对象,格式要和输入的date一致 date_obj = datetime.strptime(date, '%Y/%m/%d') # %A 返回完整的星期英文名称 week_day_name = date_obj.strftime('%A') print(f'{week_day_name} {date} at hour {hour_of_day}')
调用后同样能得到正确输出,哪怕传入的day_of_week数字有误,也会基于实际日期输出正确的星期名称。
内容的提问来源于stack exchange,提问作者Mothy_Emms
相关产品推荐
相关产品推荐

