Python新手第一课:写一个可用的待办清单小程序
很多人第一次学 Python,不是卡在语法,而是卡在不知道写什么能马上用起来。今天就用一个待办清单,把列表、循环、条件判断和文件读写串起来,全程只用标准库,不用安装任何第三方包,写完就能在自己的电脑上每天使用。
先说核心思路。待办事项本质上就是一个字符串列表:添加是往列表里放一项,列出是按编号逐条打印,完成是按编号删掉一项,退出前把列表写回文件,下次打开还能接着用。这里用 JSON 文件保存,比纯文本更稳妥,因为事项里即使有逗号、换行也不会被误拆成多条。
代码如下:
import json, os
FILE = "todos.json"
def load():
if os.path.exists(FILE):
return json.load(open(FILE, encoding="utf-8"))
return []
def save(todos):
json.dump(todos, open(FILE, "w", encoding="utf-8"), ensure_ascii=False, indent=2)
def show(todos):
if not todos:
print("目前没有待办事项。")
return
for i, item in enumerate(todos, 1):
print(f"{i}. {item}")
todos = load()
while True:
cmd = input("\n命令:add 添加 / list 列出 / done 完成 / quit 退出:").strip()
if cmd == "add":
text = input("待办内容:").strip()
if text:
todos.append(text)
elif cmd == "list":
show(todos)
elif cmd == "done":
show(todos)
try:
todos.pop(int(input("完成第几项:")) - 1)
except (ValueError, IndexError):
print("编号不对,请重新输入。")
elif cmd == "quit":
save(todos)
print("已保存,下次再见。")
break
else:
print("不认识的命令,请试试 add、list、done、quit。")
有几个新手容易踩的坑,值得单独提醒。第一,输入编号时要先转成整数,再减一,因为列表下标从零开始,而我们给用户看的编号从一开始;转换失败或越界时用 try 捕获,不要让程序直接崩溃。第二,添加前用 strip 去掉首尾空格,避免出现看起来空白的待办。第三,读写文件都要写 encoding=“utf-8”,否则中文在 Windows 上很容易乱码。第四,退出时一定要调用保存函数,否则这一轮的修改只留在内存里,关掉程序就丢了。
跑起来之后,可以先给自己定三个小练习:把 list 单独抽成函数,把 done 的编号校验写得更友好,或者给每条待办加一个优先级字段。等这三个练习都做完,你就已经摸到了真实小程序的骨架:数据结构负责存,循环负责交互,文件负责持久化。下一步再学字典、函数参数和异常处理,就会顺很多。
建议把这段代码保存为待办清单脚本,在终端里用 Python 运行该脚本。先加两件今天真正要做的事,再用 done 完成一件,亲手走通添加、列出、完成、保存这一圈,比背十页语法管用。
- 点赞
- 收藏
- 关注作者
评论(0)