专业编程基础技术教程

网站首页 > 基础教程 正文

学姐告诉你,Python写一个每日计划打卡小助手,一起养成好习惯吧

ccvgpt 2025-01-05 16:05:52 基础教程 3 ℃

学姐告诉你,用Python写一个超可爱的每日计划打卡小助手,一起养成好习惯吧~!

大家好呀!今天学姐要教大家一个超实用的小项目 - 用Python写一个每日计划打卡小助手!这个项目不仅能帮助我们培养好习惯,还能学习到Python的文件操作、时间处理和简单的用户交互哦。让我们一起来打造专属的打卡神器吧!

准备工作

首先我们需要导入一些必要的模块,主要用到datetime处理日期,json存储打卡数据:

学姐告诉你,Python写一个每日计划打卡小助手,一起养成好习惯吧


from datetime import datetime

import json

import os

核心功能实现

1. 创建打卡任务类


class HabitTracker:

    def __init__(self):

        self.habits = {}

        self.data_file = "habits.json"

        self.load_habits()

    

    def load_habits(self):

        if os.path.exists(self.data_file):

            with open(self.data_file, 'r', encoding='utf-8') as f:

                self.habits = json.load(f)

    

    def save_habits(self):

        with open(self.data_file, 'w', encoding='utf-8') as f:

            json.dump(self.habits, f, ensure_ascii=False, indent=4)

小贴士:这里我们用json格式存储数据,这样即使关闭程序,我们的打卡记录也不会丢失哦~

2. 添加新习惯


def add_habit(self, habit_name):

    if habit_name not in self.habits:

        self.habits[habit_name] = {

            "created_date": datetime.now().strftime("%Y-%m-%d"),

            "check_ins": []

        }

        self.save_habits()

        return f"? 已添加新习惯:{habit_name}"

    return f"这个习惯已经存在啦~"

3. 打卡功能


def check_in(self, habit_name):

    if habit_name in self.habits:

        today = datetime.now().strftime("%Y-%m-%d")

        if today not in self.habits[habit_name]["check_ins"]:

            self.habits[habit_name]["check_ins"].append(today)

            self.save_habits()

            return f" 打卡成功!继续保持哦~"

        return "今天已经打过卡啦,明天再来吧~"

    return "没找到这个习惯诶,要先添加它哦~"

4. 查看打卡统计


def get_stats(self, habit_name):

    if habit_name in self.habits:

        check_ins = len(self.habits[habit_name]["check_ins"])

        created = self.habits[habit_name]["created_date"]

        return f"""

习惯:{habit_name}

创建时间:{created}

已坚持:{check_ins}天

"""

    return "没找到这个习惯呢~"

完整的交互界面

让我们把所有功能组合起来,做一个可爱的交互界面:


def main():

    tracker = HabitTracker()

    print("? 欢迎使用每日习惯打卡小助手 ?")

    

    while True:

        print("\n请选择操作:")

        print("1. 添加新习惯")

        print("2. 打卡")

        print("3. 查看统计")

        print("4. 退出")

        

        choice = input("输入选项(1-4):")

        

        if choice == "1":

            habit = input("请输入要养成的习惯名称:")

            print(tracker.add_habit(habit))

        

        elif choice == "2":

            habit = input("请输入要打卡的习惯名称:")

            print(tracker.check_in(habit))

        

        elif choice == "3":

            habit = input("请输入要查看的习惯名称:")

            print(tracker.get_stats(habit))

        

        elif choice == "4":

            print("下次见啦~加油哦!")

            break



if __name__ == "__main__":

    main()

来试试看吧!

你可以这样使用这个打卡助手:

  1. 添加想要养成的习惯,比如"每日阅读"、"运动半小时"
  2. 完成任务后及时打卡
  3. 随时查看自己的坚持情况

进阶小任务

  • 试着给打卡记录添加心情标签
  • 实现按周、按月统计功能
  • 添加打卡提醒功能

小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。祝大家学习愉快,Python学习节节高!

最近发表
标签列表