捡起python之:简单的任务系统
工作需要加之ai技术的应用再一次使python全面称王,博主大二时学习了python,现在需要捡一捡,今天的小项目是:简单的任务系统。
工作需要加之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: 需要把加载的任务 赋给新值
最后最后最后!!
代码执行入口
忘记了遥控器虽然有了功能按钮,但还没有遥控器的开关按钮(对的你没听错,这个遥控器需要打开开关,再按下各个功能对应的按键 才会生效!)
经典写法 典中之典
代码功能测试
自己运行一下试一试吧!!!
更多推荐
所有评论(0)