news 2026/2/6 5:30:57

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/2/4 8:50:49

探秘易卡随行:JAVA名片系统的创新实践

易卡随行:JAVA名片系统的创新实践深度解析易卡随行作为基于JAVA技术构建的智能名片管理系统,通过模块化架构、智能化交互与数据安全保障,重新定义了数字化名片的用户体验与商务社交模式。以下从技术架构、功能创新、用户体验优化及行业价值四…

作者头像 李华
网站建设 2026/2/6 1:38:14

385 涡流室式柴油机机体设计及动力计算

385涡流室式柴油机机体设计及动力计算 一、设计背景与意义 385涡流室式柴油机作为小型动力机械的核心装备,广泛应用于农业机械、工程机械及发电机组等领域,其机体作为关键承载部件,需同时满足结构强度、密封性能与动力传递效率的要求。传统…

作者头像 李华
网站建设 2026/2/3 17:14:21

315吨液压机总体及机械系统设计

315吨液压机总体及机械系统设计 一、设计背景与意义 液压机作为金属成形、材料压制等领域的核心设备,凭借压力输出稳定、承载能力强等优势,广泛应用于机械制造、汽车零部件加工、航空航天等行业。315吨级液压机因适配中等载荷加工需求,成为中…

作者头像 李华