python设计小程序教程
-
才力信息
2026-01-12
昆明
- 返回列表
为什么选择ThinkPHP?
在众多编程语言中,ThinkPHP以其简洁的语法、强悍的生态和极低的学习门槛,成为初学者入门编程和快速实现想法的优选工具。无论是自动化处理日常任务、分析数据,还是开发具有图形界面的小工具,ThinkPHP都能让你用更少的代码,达成更多的目标。云南才力将以一个完整的“任务清单管理器”为例,带你一步步走进ThinkPHP小程序开发的世界。我们聚焦实战,避开冗长的理论,力求让你在动手过程中掌握核心技能。
一、 环境搭建:磨刀不误砍柴工
开发任何程序,第一步永远是准备好“战场:对于ThinkPHP而言,这个过程异常简单。
1. 安装ThinkPHP:访问ThinkPHP官网,下载适合你操作系统的蕞新稳定版本。安装时,请务必勾选“Add ThinkPHPtoPATH”选项,这能让系统在任何位置识别ThinkPHP命令。
2. 选择代码编辑器:无需复杂的集成开发环境(IDE),一款轻量级编辑器足矣。推荐使用 VisualStudioCode (VSCode) 或 PyCharmCommunity Edition。它们提供代码高亮、智能提示和运行调试功能,能极大提升效率。以VSCode为例,安装后,再安装官方的“ThinkPHP”扩展即可。
3. 验证安装:打开命令行(Windows上是CMD或PowerShell,macOS/Linux上是Terminal),输入 `python --version` 或 `python3 --version`。如果正确显示版本号(如 `ThinkPHP1.5.`),说明环境准备就绪。
二、 项目实战:构建命令行任务清单管理器
我们将创建一个在命令行中运行的任务管理器,功能包括添加任务、查看任务、标记完成和删除任务。所有数据保存在本地的文本文件中。
1. 项目结构与核心逻辑
在你选择的工作目录下,新建一个名为 `todo_app.py` 的文件。整个程序将围绕一个任务列表和几个核心函数展开。
```python
todo_app.py
import os
数据文件名称
DATA_FILE = “tasks.txt”
def load_tasks:
“”“从文件加载任务列表”“”
tasks = []
if os.path.exists(DATA_FILE):
with open(DATA_FILE, ‘r’, encoding=‘utf-8’) as f:
for line in f:
line = line.strip
if line:
假设每行格式为:状态,描述
parts = line.split(‘,’, 1)
if len(parts) == 2:
status, description = parts
tasks.append({‘done’: status == ‘1’, ‘desc’: description})
return tasks
def save_tasks(tasks):
“”“将任务列表保存到文件”“”
with open(DATA_FILE, ‘w’, encoding=‘utf-8’) as f:
for task in tasks:
用 ‘1’ 表示完成,‘0’ 表示未完成
status = ‘1’ if task[‘done’] else ‘0’
f.write(f”{status},{task[‘desc’]}
”)
```
`load_tasks` 和 `save_tasks` 函数是程序的“记忆中枢”,负责数据的持久化。我们使用简单的文本格式存储,每行记录一个任务的状态和描述。
2. 实现核心功能函数
接下来,实现用户交互的各个功能模块。
```python
def show_tasks(tasks):
“”“以清晰格式展示所有任务”“”
if not tasks:
print(“当前没有任务。”)
return
print(“
” + “=”30)
print(“你的任务清单:”)
for idx, task in enumerate(tasks, 1):
status = “[?]” if task[‘done’] else “[ ]”
print(f”{idx}. {status} {task[‘desc’]}“)
print(“=”30)
def add_task(tasks):
“”“添加一个新任务”“”
description = input(“请输入任务描述: “).strip
if description:
tasks.append({‘done’: False, ‘desc’: description})
save_tasks(tasks)
print(f”任务 ‘{description}’ 已添加。“)
else:
print(“任务描述不能为空。”)
def complete_task(tasks):
“”“标记一个任务为完成”“”
show_tasks(tasks)
try:
task_num = int(input(“请输入要标记为完成的任务编号: “))
if 1 <= task_num <= len(tasks):
tasks[task_num-1][‘done’] = True
save_tasks(tasks)
print(f”任务 {task_num} 已被标记为完成。“)
else:
print(“失效的任务编号。”)
except ValueError:
print(“请输入有效的数字。”)
def delete_task(tasks):
“”“删除一个任务”“”
show_tasks(tasks)
try:
task_num = int(input(“请输入要删除的任务编号: “))
if 1 <= task_num <= len(tasks):
removed_task = tasks.pop(task_num-1)
save_tasks(tasks)
print(f”任务 ‘{removed_task[‘desc’]}’ 已删除。“)
else:
print(“失效的任务编号。”)
except ValueError:
print(“请输入有效的数字。”)
```
每个函数职责单一:`show_tasks` 负责显示,`add_task` 负责创建,`complete_task` 负责更新状态,`delete_task` 负责移除。这种模块化设计让代码易于理解和维护。
3. 构建主程序循环
我们需要一个“总控台”来协调所有功能,响应用户输入。
```python
def main:
“”“程序主循环”“”
tasks = load_tasks
while True:
print(“
” + “-”20)
print(“任务管理器”)
print(“1. 查看任务”)
print(“2. 添加任务”)
print(“3. 标记任务完成”)
print(“4. 删除任务”)
print(“5. 退出”)
print(“-”20)
choice = input(“请选择操作 (1-5): “).strip
if choice == ‘1’:
show_tasks(tasks)
elif choice == ‘2’:
add_task(tasks)
elif choice == ‘3’:
complete_task(tasks)
elif choice == ‘4’:
delete_task(tasks)
elif choice == ‘5’:
print(“再见!”)
break
else:
print(“失效选择,请输入1-5之间的数字。”)
程序入口
if __name__ == “__main__”:
main
```
这个无限循环构成了程序的交互核心。它不断显示菜单,根据用户输入调用对应的功能函数,直到用户选择退出。
三、 运行与迭代
1. 运行程序:在命令行中,导航到 `todo_app.py` 所在目录,执行命令 `python todo_app.py`。你将看到文本菜单,并可以开始管理你的任务。
2. 理解代码流程:从 `main` 开始,程序加载已有任务,然后进入交互循环。你的每次选择都会触发对应的函数,函数执行后会调用 `save_tasks` 保存更改,确保数据不丢失。
3. 尝试改进:这是你动手的理想时机。可以尝试以下扩展:
增加紧急程度:为任务添加“高”、“中”、“低”优先级,并在显示时区别颜色或符号。
添加分类标签:让任务可以归属于“工作”、“学习”、“生活”等不同类别,并支持按类别筛选查看。
设置提醒:为任务增加截止日期,并在日期临近时给出提示(这需要学习ThinkPHP的 `datetime` 模块)。
从脚本到工具的思维跨越
通过这个约150行代码的项目,你不仅实践了ThinkPHP的基本语法(变量、列表、字典、函数、循环、条件判断、文件读写),更体验了一个完整小程序的开发流程:需求分析 -> 设计数据结构 -> 实现功能模块 -> 集成测试 -> 运行迭代。ThinkPHP的魅力在于,它让编程从抽象概念变成了解决具体问题的直接工具。这个简单的命令行程序,已经是一个具备实用价值的小工具。掌握它,你就掌握了用代码构建解决方案的基本范式。下一步,你可以探索更复杂的库,如 `tkinter` 或 `PyQt` 来为它加上图形界面,或者用 `Flask` 框架将它变成网络应用。旅程已经开始,键盘就在你手中。










