news 2026/3/30 16:41:42

Python:(一)变量、类型与 f-string —— 数据的载体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python:(一)变量、类型与 f-string —— 数据的载体

目录

1. 变量 (Variables):给数据贴标签

命名规范(ML 领域的潜规则)

2. 四大核心数据类型 (The Core Types)

A. Float (浮点数) —— ML 的绝对主角

B. Int (整数) —— 计数器

C. Bool (布尔值) —— 逻辑开关

D. String (字符串) —— 文本与路径

必须要会的技能:类型转换 (Casting)

3. f-string:格式化输出神器

基础用法

进阶用法:控制数字精度 (ML 必学)

4. 实战演练:模拟训练日志

课后思考 (Check Your Understanding)


1. 变量 (Variables):给数据贴标签

在 Python 中,变量不需要“声明类型”(不像 C++ 或 Java 需要写int a = 1)。你直接赋值,Python 会自动识别。

命名规范(ML 领域的潜规则)

虽然 Python 推荐用全小写加下划线(如my_variable),但在机器学习的数学公式实现中,我们经常打破这个规则以匹配数学符号:

  • 常规变量:learning_rate,batch_size,model_path(使用 snake_case)

  • 矩阵/数据集:X(通常大写,代表特征矩阵),y(通常小写,代表标签)

  • 参数:w(权重 weights),b(偏置 bias)

# 定义变量非常简单,左边是名字,右边是值 epoch = 10 # 训练轮数 learning_rate = 0.001 # 学习率 is_training = True # 是否正在训练 model_name = "ResNet50" # 模型名称 # 变量的值是可以随时修改的 epoch = epoch + 1 # 现在 epoch 变成了 11

2. 四大核心数据类型 (The Core Types)

Python 有很多类型,但做算法模型时,你 95% 的时间只在和下面这四种打交道。

A. Float (浮点数) —— ML 的绝对主角

机器学习的核心是微积分和矩阵运算,结果几乎永远是小数。

  • 场景:模型的准确率 (0.985)、损失函数值 (0.0023)、权重参数。

  • 注意:哪怕是1.0,在计算机眼里它也是浮点数,而不是整数。

B. Int (整数) —— 计数器

  • 场景:数据集的索引(第 5 张图)、训练的轮数(第 10 轮)、分类的类别 ID(0 代表猫,1 代表狗)。

C. Bool (布尔值) —— 逻辑开关

只有两个值:TrueFalse(注意首字母大写)。

  • 场景:shuffle=True(打乱数据),use_gpu=False(使用 CPU),pretrained=True(使用预训练模型)。

D. String (字符串) —— 文本与路径

用单引号' '或双引号" "包裹。

  • 场景:文件路径'./data/train.csv',自然语言处理中的原始文本'I love AI'

必须要会的技能:类型转换 (Casting)

数据读入时经常格式不对(比如从文本文件读入的数字默认是字符串),你需要手动转换。

s = "3.14159" # print(s + 1) # ❌ 报错!字符串不能和数字相加 f = float(s) # ✅ 强制转换为浮点数 print(f + 1) # 输出: 4.14159 i = int(3.9) # ✅ 浮点转整数(注意:是直接截断,不是四舍五入) print(i) # 输出: 3

3. f-string:格式化输出神器

在训练神经网络时,你经常盯着屏幕看滚动的日志。如果打印得乱七八糟,会非常影响判断。

Python 3.6 引入的f-string(formatted string literal) 是目前最推荐的写法。

基础用法

在字符串的引号前加一个f,然后在字符串内部用花括号{}包裹变量。

acc = 0.85 name = "YOLOv5" # 老式写法 (不推荐,容易眼花) print("模型 " + name + " 的准确率是 " + str(acc)) # ✅ f-string 写法 (推荐) print(f"模型 {name} 的准确率是 {acc}")

进阶用法:控制数字精度 (ML 必学)

损失函数(Loss)通常是很长的小数,如0.1293847192。直接打印太乱,我们通常只看前4位或前6位。

  • 语法:{变量:格式}

  • .4f:表示保留小数点后 4 位浮点数。

  • .2%:表示显示为百分比,保留 2 位小数。

loss = 0.1293847192 accuracy = 0.98765432 # 这里的 :.4f 和 :.2% 是重点 print(f"Loss: {loss:.4f}") # 输出: Loss: 0.1294 (自动四舍五入) print(f"Accuracy: {accuracy:.2%}") # 输出: Accuracy: 98.77%

4. 实战演练:模拟训练日志

让我们把上面学到的组合起来,写一段模拟神经网络训练过程的代码。

# === 模拟训练参数配置 === model_name = "DeepLabV3" batch_size = 32 # int total_images = 1000 # int current_loss = 0.052391 # float # 计算一下大概需要多少个 batch 才能跑完 (简单的数学运算) # total_images / batch_size 结果是 float,我们需要转成 int steps_per_epoch = int(total_images / batch_size) # === 打印训练日志 === print("-" * 30) # 打印30个减号作为分割线 print(f"开始训练模型: {model_name}") print(f"总图片数: {total_images}, 批次大小: {batch_size}") print(f"每轮需要跑 {steps_per_epoch} 步") print("-" * 30) # 模拟打印某一步的结果 step = 15 print(f"Step [{step}/{steps_per_epoch}] -> Loss: {current_loss:.4f}")

运行结果:

------------------------------ 开始训练模型: DeepLabV3 总图片数: 1000, 批次大小: 32 每轮需要跑 31 步 ------------------------------ Step [15/31] -> Loss: 0.0524

课后思考 (Check Your Understanding)

请在你的 Python 环境(Jupyter Notebook 或 PyCharm)中尝试解决这个问题:

问题:

假设你有两个变量:

precision = 0.81234

recall = 0.78912

请计算 F1-Score(公式如下),并使用 f-string 打印结果,要求保留 3 位小数

(如果你写完了或者卡住了,可以随时把代码发给我,我来帮你 Review!)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 7:29:30

10/0.4kV变电站电气部分设计

10/0.4kV变电站电气部分设计 一、设计背景与意义 1004kV特高压变电站作为电力系统骨干网架的核心节点,承担着跨区域大容量电力输送、电网互联及负荷分配的关键功能,其电气部分设计直接决定电网运行的安全性、稳定性与经济性。随着新能源发电规模的持续扩…

作者头像 李华
网站建设 2026/3/27 15:25:19

如何在linux系统上安装微信

1、在linux系统的火狐浏览器中搜索、下载微信选linux版本选X86下载完成后,微信位于”下载“文件夹:打开linux终端,$cd 下载$sudo dpkg -i WeChatLinux_x86_64.deb安装完成后,在linux终端输入(字母全部小写)…

作者头像 李华
网站建设 2026/3/28 0:13:27

【26美赛A题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

【26美赛A题】2026美赛数学建模赛(MCM/ICM)思路解析及代码分享 订阅即可获取2026年及历年数学建模笔记,万字题解内容,且结合全球最新AI技术辅助,帮你轻松攻坚竞赛!后续还将持续发布华为杯、高教社杯、华数杯…

作者头像 李华
网站建设 2026/3/27 7:29:43

计算机毕业设计之springboot基于JAVA WEB的宠物寄养管理系统

随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建宠物寄养管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种宠物商品、宠物店信息、宠物信息等于一体的…

作者头像 李华