[python] 学习总结

18 阅读6分钟

1.1 前言

为什么学 python?

  1. 学会 python 能更好的适应 AI 发展,多尝试一些 AI 项目和开源库(比如 google-adk);
  2. 同时我有快速创建简单 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 开发的作用:

  1. 提供开箱即用的环境
  2. 通过 Conda 创建虚拟环境,为不同项目配置独立的 Python 版本和依赖库,避免版本冲突
  3. 通过 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 开发工具:

  1. PyCharm
  2. Spyder
  3. 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.7class 类名:
    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 有两种绑定方式:

  1. 命令回调:widget 的 command 选项
  2. 自定义事件绑定: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:发布文章