工作需要加之ai技术的应用再一次使python全面称王,博主大二时学习了python,现在需要捡一捡,今天的小项目是:简单的任务系统

实现功能:

函数1:show_menu()     用于展示菜单功能

函数2:add_task()          用于添加任务

函数3:show_tasks()      用于打印所有任务

函数4:delete_tasks()     用于删除任务

函数5:save_tasks()       用于保存任务到文件中

函数6:load_tasks()        用于从文件中加载任务

接写来一个一个函数来实现功能:

函数1:show_menu() 

主要是用print()打印输出显示给用户

input()来获取用户输出交给下面的函数调用

同时注意控制获取到的用户输入为数字类型,这一点可以用int()来进行类型的强制转换

代码展示

这个函数很简单,涉及到的知识点也没有很复杂,也非常适合用来单独练习输入输出

函数2:add_task()

这里用到了列表的方法,可以在学习完列表知识以后,对列表方法进行练习

依然是input()函数来获取用户输入   获取到的输入交给一个你信任的变量

然后调用列表方法a.append()来实现增加任务到列表里的功能

代码展示

函数3:show_tasks()

用这个函数来显示目前所有的任务,这里就包含两种情况需要考虑到

1.有任务   2.没有任务    都需要考虑到

首先用 if 语句来判断任务列表是否为空,如果为没有任何任务就需要 print() 输出一下让用户得知已经没有任务

如果列表有任务,就输出     这里用 for 循环 和 enumerate() 函数来输出任务以及任务的序号,大概下面就是我们要的输出效果:

第1个任务:吃西瓜

第2个任务:  去爬山

第3个任务:吃西红柿

......

代码展示:

用 if not tasks: 来判断任务列表是否为空,其中用到了一个 not 关键字

重要的是:如果任务列表为空要 返回一个空列表 return [] 否则会返回默认的 None 值(ps:如果有下面的函数调用,它只能得到空值,你承诺过要它给一个有效值的,给不到它会觉得你在骗人)

所以这里返回空列表非常重要!!!!!!

然后有任务的情况就输出    用 enumerate() 函数取到任务列表的任务名和index 

最后 f"" 格式化输出     return tasks

函数4:delete_tasks()

这里也同样需要判断任务列表是否为空

-----------------------------------------------------------------

如果为空:

        输出 没有任务

不为空:

        果断决绝冷漠无情的删除!

-----------------------------------------------------------------

同时需要考虑哪里可能会出现的异常,可以用try-except() 来捕获异常 防止代码停摆

比如:只有1-5个任务  删除任务 6  (代码os:臣妾做不到,臣妾死给你看)

再比如:要我输入想删除的任务编号    我的输入:s  (代码os:真难为我!不运行了!!)

再有比如:你来想。。。。

这时就需要捕获异常后告诉代码,我早就预测你要停摆(实际代码停摆多次后发现的),接着给我执行!

代码展示

这里博主捕获异常不仅用了 try-except() 还用了 try-except() 套  try-except(),超级无敌异常捕获,防止代码运行时停摆!(os:也是与不听话的代码斗争了好久)

实现功能后希望你能在此基础上能够改进 博主 的超级无敌 嵌套 

函数5:save_tasks() 

接下来实现保存任务的功能

涉及到文件的操作方法    这里博主用 with open() 的方法,据 某豆某包 说可以打开文件关闭文件自动管理(简单说能够在你不用文件的时候关闭文件,防止内存的一直占用)

代码中的注释非常重要,博主写的中国话你可以自行理解

用的是  with open (filename,'w',encoding='utf-8') as f:  

这里稍微补充一下  'w' 是write 是在文件中写入,'r' 是read是读文件内容

函数6:load_tasks() 

刚补充完 'r'  接下来该派上大用场了!

需要考虑哪里可能会出现的异常,可以用try-except() 来捕获异常

比如:文件根本都不存在!(代码os:这我读什么??不是你文件名写错了就是这文件根本不存在!)

-------------------------------------------------------

文件存在:

        读文件,写到任务列表中

文件不存在:

        输出提示

-------------------------------------------------------

这里用到了列表推导式来筛选文件里的任务,(把苹果洗干净了在放在篮子里)

列表推导式一下实现了循环便遍历文件中所有任务 和 清除任务名两边空格的任务!实为宗门利器

接下来该把任务放到列表里了

这里用的是列表方法  extend() 在已有任务后面追加,不会覆盖之前已经有的任务

当然你也可以选择覆盖的方法,甚至可以让用户来选择

比如:

        输入1 是覆盖已有的任务追加

        输入2 是不覆盖已有的任务追加

献上代码:

主函数:main()

最后写一个遥控器来遥控这写功能

主函数 main() 隆重登场

首先对广大函数们都需要的参数给出答复

有请函数藩王们登场:

总结下来:需要准奏 tasks filename

朝廷赈灾粮下来了!!!

接下来实现遥控器来遥控各藩王:

博主采用经典的 while 循环

--------------------------------------------------------

while True:

        选择1:

                藩王(函数)1

        选择2:

                藩王(函数)2

。。。。。。

--------------------------------------------------------

里面的选择用 if-elif-else 非常好用!!!

这里要看着函数1来写

注意 捕获输入为0 的时候需要退出,

请问退出 while 循环,还是退出整个 main 函数??

接下来给出代码:

注意 选择5: 需要把加载的任务 赋给新值

最后最后最后!!

代码执行入口

忘记了遥控器虽然有了功能按钮,但还没有遥控器的开关按钮(对的你没听错,这个遥控器需要打开开关,再按下各个功能对应的按键 才会生效!)

经典写法 典中之典

代码功能测试

自己运行一下试一试吧!!!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐