1.1 前言
为什么学 python?
- 学会 python 能更好的适应 AI 发展,多尝试一些 AI 项目和开源库(比如 google-adk);
- 同时我有快速创建简单 GUI 的需求,而 python 的 tkinter 正好适合
由于我的目的如上,所以没有关于 python 很深的内容,都是入门基础,如果你是有经验的那就不用看了
1.2 python 能做什么
- 自动化日常任务或运维(这是对个人而言,最重要的作用)
- Web 开发
- 数据分析与挖掘
- 网络爬虫
- 浏览器网页自动化
- 桌面应用开发(Tkinter、PyQt)
- 科学计算与可视化
- 人工智能与机器学习
1.3 Anaconda 和开发工具
Anaconda 是一个基于 Conda 的 Python 发行版,预装了 Conda、Python、大量科学计算和数据分析相关的库(如 NumPy、Pandas 等),以及开发工具(如 Spyder、JupyterLab)。它旨在为数据科学和机器学习提供开箱即用的环境
词解释:
- Conda:跨平台的包管理和环境管理系统
- Anaconda Navigator:管理 conda 包、环境的 GUI
- Spyder:用于 python 编程的 IDE
对于 python 开发的作用:
- 提供开箱即用的环境
- 通过 Conda 创建虚拟环境,为不同项目配置独立的 Python 版本和依赖库,避免版本冲突
- 通过 Conda 可导出环境配置文件,快速复制开发环境,保证团队协作时的一致性
安装 Anaconda 记得勾选添加到系统 PATH,否则后面还得手动添加
添加国内清华源:
conda config --show-sources
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --show-sources
其他关于创建环境、添加包等操作,都可以用 GUI 界面完成或者直接问 AI 命令是什么
python 开发工具:
- PyCharm
- Spyder
- vscode
哪种工具都可以,由于我是前端工作为主,所以使用 vscode,必装插件:Python
vscode 选择不同环境的 python:执行命令【select interpreter】
1.4 基础语法
1.5.1 命名风格
变量名采用小写蛇形风格,例如 coupon_name、user_last_name 等
常量名采用大写蛇形风格,例如 COUPON_NAME、USER_LAST_NAME 等
函数名采用小写蛇形风格,并要求以动词开头,例如 take_last_name、translate 等
类名采用大驼峰命名风格,例如 Storage、ImageDownload 等
接口名采用大驼峰命名风格,例如 StorageInterface、AbstractDownload 等
包名采用小写蛇形命名风格,例如 file_storage、components 等
文件名采用小写蛇形命名风格,例如 urls.py、remote_cache.conf 等
项目名采用小写蛇形命名风格,例如 sequence、translation_machine 等
1.5.2 注释
变量或常量注释:time = 3600 # 这是注释
函数注释:
def send(message, host, name):
"""消息推送器
将消息推送到指定服务器的指定队列中
:param message: 消息体
:param host: 服务器地址
:param name: 队列名称
:return: 推送结果
"""
类型注释:
def reader(name: str, threshold: int = 100) -> FileStorage:
文件注释(写在文件顶部):
# -*- coding: utf-8 -*-
"""
@author:
@time:
@description:
"""
1.5.3 变量和函数
定义变量:变量名 = 值
数据类型:整型int、浮点型float、字符串str、布尔型bool、列表list、元组tuple、字典dict、空值NoneType
判断数据类型:type() 和 isinstance()
标准输出:print("包含 %d 或 %f 或 %s 的字符串" % 元组)
获取字符串或数组长度:len()
字符串拼接:"No" + str(1)
字符串换行:"A: How are you. \nB: Great."
字符串包含引号:"Name is \"Jack\""
访问数组最后一个元素:arr[-1]
数组切片(slice):arr[start:end:step]
数组浅拷贝:arr.copy()
数组合并(join):arr1 + arr2
判断元素是否在数组内:in / not in
定义函数:def 函数名(参数 = 默认值):
*args作用:让函数能够接收任意参数,会打包成一个元组
lambda匿名函数:用于创建简单的单行函数。格式为:lambda 参数: 表达式
没有返回值:return None
1.5.4 控制流语句
条件判断语句:
if a < b:
print("a小于b")
elif a > b:
print("a大于b")
else:
print("a等于b")
循环语句:
i = 0
while i < 6:
print(i)
i += 1
arr = ["apple", "banana", "cherry"]
for x in arr:
print(x)
# break: 跳出整个循环
# continue: 跳过当前循环
1.5.5 导入库
import lib # 直接导入整个lib
import lib as l # 导入lib并命名为l
from lib import a, b # 导入lib中的a和b
第三方库
python强就强在库太多了,你想解决的问题,基本都有库
请求:requests
日志:logging
数学计算:NumPy
数据分析:Pandas
画图:Matplotlib
1.5.6 异常处理
try:
# 可能引发异常的代码
resp = requests.get("", timeout=10)
except TimeoutError as ext:
# 处理【请求超时】异常
logging.error(ext)
except ValueError as ext:
# 处理【值错误】异常
pass
else:
# 无异常时执行
pass
finally:
# 无论是否异常,最后都会执行(用于释放资源)
pass
1.5.7 类
class 类名:
def __init__(self): # 构造方法
self.属性 = 值
def 方法名(self): # 实例方法
# 方法体
1.5 Tkinter
python 内置、简单、跨平台的 GUI 库,适合小型桌面应用开发
因为现在 AI 编程工具已经很强大了,所以重点是了解 Tkinter 有什么,多看一些示例,基本上就能用提示词开发了。python IDLE 是使用 Tkinter 编写的复杂应用,有一定的参考意义,学其精华
GUI 程序设计三要素:widget(部件),layout(布局),event(事件)
widget 汇总:
Frame:框架
Label:标签
Button:按钮
Checkbutton:复选框
Radiobutton:单选框
Entry:输入框
Combobox:组合框(列表框+输入框)
Listbox:列表框
Scrollbar:滚动条
Text:多行文本区域(很复杂强大,可以做富文本编辑器)
Progressbar:进度条
Scale:比例尺(类似音量调节)
Spinbox:数字输入框
Separator:分隔符
Labelframe:标签框(类似<fieldset>)
Panedwindow:动态区域容器
Notebook:Tab切换
Canvas:画布
Treeview:树状视图(类似windows资源管理器)
Menu:菜单栏、上下文菜单
layout 最常用的是 grid(以前是 pack)
event 有两种绑定方式:
- 命令回调:widget 的 command 选项
- 自定义事件绑定:widget.bind(event, handler)
常用事件:
<Activate>:窗口已变为活动状态
<Deactivate>:窗口已被停用
<MouseWheel>:鼠标上的滚轮已移动
<KeyPress>:键盘上的键已被按下
<KeyRelease>:密钥已释放
<ButtonPress>:已按下鼠标按钮
<ButtonRelease>:鼠标按钮已释放
<Motion>:鼠标已移动
<Configure>:部件已改变大小或位置
<Destroy>:部件正在被销毁
<FocusIn>:部件已获得键盘焦点
<FocusOut>:部件已失去键盘焦点
<Enter>:鼠标指针进入部件
<Leave>:鼠标指针离开部件
对话框有:消息框、确认框、选择文件或目录、选择颜色、选择字体
另外,关于如何打包 Tkinter 应用程序,可以看下这篇文章
1.6 最后
如果帮到你了可以点个赞。
学习资料:python 编程参考、tkdocs.com/
2025/05/10:发布文章