Python如何将datetime.weekday()返回值映射为对应星期坐标替代多if判断
优化实现方案
核心思路
利用datetime.weekday()返回值0~6正好对应周一到周日的索引特性,用有序列表直接映射坐标,省去所有分支判断。
代码实现
import datetime as dt import pyautogui import time # 按weekday()返回顺序(0=周一,6=周日)存储对应坐标 WEEKDAY_COORDS = [ (340, 431), # 周一 (529, 432), # 周二 (721, 436), # 周三 (912, 436), # 周四 (1107, 435), # 周五 (1293, 436), # 周六 (1484, 434) # 周日 ] dow = dt.today().weekday() today = WEEKDAY_COORDS[dow] pyautogui.click(today) time.sleep(1)
可选扩展方案
如果你的业务场景需要单独引用单个星期的坐标常量,也可以用字典实现映射:
WEEKDAY_MAP = { 0: (340, 431), # MON 1: (529, 432), # TUE 2: (721, 436), # WED 3: (912, 436), # THUR 4: (1107, 435),# FRI 5: (1293, 436),# SAT 6: (1484, 434) # SUN } today = WEEKDAY_MAP[dow]
两种方案的查找效率都是O(1),比多分支判断逻辑更简洁,后续维护修改坐标只需要调整列表/字典内的对应项即可。
内容的提问来源于stack exchange,提问作者william price
相关产品推荐
相关产品推荐

