Python 基础:变量、数据类型与 f-string 格式化
Python 基础教程涵盖变量命名规范、四大核心数据类型(Float、Int、Bool、String)及类型转换方法。重点讲解 f-string 格式化输出技巧,包括基础用法和数字精度控制,适用于机器学习场景下的日志打印。通过模拟训练日志实战演练,帮助读者掌握数据载体操作与格式化输出技能,提升代码可读性与调试效率。

Python 基础教程涵盖变量命名规范、四大核心数据类型(Float、Int、Bool、String)及类型转换方法。重点讲解 f-string 格式化输出技巧,包括基础用法和数字精度控制,适用于机器学习场景下的日志打印。通过模拟训练日志实战演练,帮助读者掌握数据载体操作与格式化输出技能,提升代码可读性与调试效率。

在 Python 中,变量不需要'声明类型'(不像 C++ 或 Java 需要写 int a = 1)。你直接赋值,Python 会自动识别。
虽然 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
Python 有很多类型,但做算法模型时,你 95% 的时间只在和下面这四种打交道。
机器学习的核心是微积分和矩阵运算,结果几乎永远是小数。
1.0,在计算机眼里它也是浮点数,而不是整数。只有两个值:True 和 False(注意首字母大写)。
shuffle=True (打乱数据), use_gpu=False (使用 CPU), pretrained=True (使用预训练模型)。用单引号 ' ' 或双引号 " " 包裹。
'./data/train.csv',自然语言处理中的原始文本 'I love AI'。数据读入时经常格式不对(比如从文本文件读入的数字默认是字符串),你需要手动转换。
s = "3.14159"
# print(s + 1) # ❌ 报错!字符串不能和数字相加
f = float(s) # ✅ 强制转换为浮点数
print(f + 1) # 输出:4.14159
i = int(3.9) # ✅ 浮点转整数(注意:是直接截断,不是四舍五入)
print(i) # 输出:3
在训练神经网络时,你经常盯着屏幕看滚动的日志。如果打印得乱七八糟,会非常影响判断。
Python 3.6 引入的 f-string (formatted string literal) 是目前最推荐的写法。
在字符串的引号前加一个 f,然后在字符串内部用花括号 {} 包裹变量。
acc = 0.85
name = "YOLOv5"
# 老式写法 (不推荐,容易眼花)
print("模型 " + name + " 的准确率是 " + str(acc))
# ✅ f-string 写法 (推荐)
print(f"模型 {name} 的准确率是 {acc}")
损失函数(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%
让我们把上面学到的组合起来,写一段模拟神经网络训练过程的代码。
# === 模拟训练参数配置 ===
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
请在你的 Python 环境(Jupyter Notebook 或 PyCharm)中尝试解决这个问题:
问题:
假设你有两个变量:
precision = 0.81234
recall = 0.78912
请计算 F1-Score(公式如下),并使用 f-string 打印结果,要求保留 3 位小数。
F1 = 2 × (precision × recall) / (precision + recall)

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online