Python 大数据分析基础 · 第2次课 · 演示Demo

← 课堂内容网页 课程主页 Python语言基础 · AI渗透式教学 · 授课人:孙琪翔
Python 大数据分析基础

第2章 Python 语言基础

常量变量 · 运算符 · 数据类型 · 输入输出 · 模块
AI 渗透式教学设计 第2次课 4学时 180分钟
授课人:孙琪翔 · 中华女子学院

本课地图 · 7大模块 + 10个AI渗透点

本次课分为7个模块,每个模块都融入了AI渗透点,用当前所学语法解释AI内部机制。基础阶段"基本不接入"AI,学生不动手用AI,仅观察教师演示。

2.1
常量与变量
怎么让电脑"记住"数据 · 变量是便利贴不是盒子
2.2
运算符与表达式
怎么让电脑"算题目" · 算术/关系/逻辑/赋值
2.3
数据类型
数字、字符串、布尔的区别 · 浮点精度陷阱
2.4
内置函数
Python自带的工具箱 · help()与dir()
2.5
基本输入输出
怎么和用户"对话" · input()与print()
2.6
模块的使用
怎么调用别人写好的工具 · random模块
2.7
综合应用
串起来写完整小程序 · 闰年判断+海伦公式

2.1 常量与变量

核心概念

常量是固定不变的值(如3、"hello"),变量通过赋值创建,是贴在值上的"便利贴"——存的是内存地址,不是值本身。

Python Shell 演示
# 常量
>>> 3
3
# 变量:通过赋值创建
>>> age = 18
>>> age
18
# 变量的值可以改变
>>> age = 20
>>> age
20
# 先定义后使用,否则NameError
>>> print(name)
NameError: name 'name' is not defined
变量命名4规则:①字母/数字/下划线,数字不开头 ②大小写敏感 ③不能用关键字 ④见名知义(推荐snake_case)
覆盖内置函数"事故":学生常随手写 sum = 0,之后 sum([1,2,3]) 就会报 TypeError。后悔药:del sum

AI 渗透 · AI-01 变量 = 模型参数

三行代码看懂"训练"

AI的"学习",本质就是一大堆变量被不断重新赋值。w是模型参数(就是一个变量),每次根据误差调整w,就是一次"学习"。GPT有几千亿个这样的w。全程没有循环、没有AI库,只有赋值+算术。

AI训练最小演示
x, y_true = 2.0, 10.0
w = 1.0  # 初始猜测
lr = 0.1  # 学习率

# 第1次学习
pred = w * x
w = w - lr * (pred - y_true) * x
print(w)  # 2.6

# 第2次学习
pred = w * x
w = w - lr * (pred - y_true) * x
print(w)  # 3.56

# 第3次学习
pred = w * x
w = w - lr * (pred - y_true) * x
print(w)  # 4.136
print("正确答案 w = 5.0")

2.2 运算符与表达式

运算符全景与优先级

Python运算符分为算术、关系、逻辑、赋值、成员测试等。优先级从高到低:** > * / // % > + - > 位运算 > in/not in/is > 比较 > not > and > or。记不住怎么办?加括号!

算术运算符重点
>>> 7 / 2, 7 // 2, 7 % 2, 7 ** 2
(3.5, 3, 1, 49)
>>> -7 // 3, -7 % 3
(-3, 2)  # 向下取整,余数永远非负
>>> 2 ^ 3
1  # 位异或,不是8!
逻辑运算符 + 惰性求值 ★:and返回第一个假值或最后一个真值;or返回第一个真值或最后一个假值。惰性求值:False and 1/0 不报错,因为右边压根没算!

AI 渗透 · AI-02/03 神经元 = 加权求和

AI最核心的一行代码,只有加减乘

AI-02 神经元 = 加权求和:y = w1*x1 + w2*x2 + w3*x3 + b。权重不同=模型不同=判断标准不同。整个深度学习=很多个这样的表达式叠起来。

AI-03 置信度 = float + 阈值:AI不说"是猫",它说"是猫的概率0.83"。float表示概率,阈值判断分类。

神经元计算演示
# 输入:耳朵尖度、胡须长度、眼睛颜色
x1, x2, x3 = 0.9, 0.7, 0.8
# 权重(模型学到的参数)
w1, w2, w3 = 0.5, 0.3, 0.2
b = -0.4

# 神经元 = 加权求和
y = w1*x1 + w2*x2 + w3*x3 + b
print(f"加权和 = {y:.3f}")

# sigmoid激活 → 概率
import math
prob = 1 / (1 + math.exp(-y))
print(f"是猫的概率 = {prob:.2%}")
print("判断:", "是猫" if prob > 0.5 else "不是猫")

2.3 数据类型

六大类型速览

类型示例说明
int42, -10整数,无大小限制
float3.14, 1.5e10浮点数,IEEE 754
complex3+4j复数,本章了解
boolTrue, Falseint的子类,True=1, False=0
str"hello"字符串,不可变
NoneTypeNone空值

AI 渗透 · AI-08 浮点精度陷阱 = AI幻觉

本章最震撼的演示:0.1 + 0.2 ≠ 0.3

浮点数在计算机中用二进制表示,0.1和0.2都无法精确表示。这不是bug,是IEEE 754标准的特性。AI幻觉也一样:非常流畅、非常自信地给你一个错答案。所以:AI给的每一个关键结论,你都要能自己验证。

浮点精度演示
>>> 0.1 + 0.2
0.30000000000000004
>>> 0.1 + 0.2 == 0.3
False  # 震惊全场
>>> round(0.1 + 0.2, 2)
0.3
>>> abs((0.1+0.2) - 0.3) < 1e-9
True  # 正确比较姿势

2.4 内置函数

Python有150+个内置函数,本章最常用的包括:abs()、round()、pow()、divmod()、max()、min()、sum()、len()、type()、int()、float()、str()、bool()、id()、help()、dir()。用 dir(__builtins__) 可以查看全部。

help()与dir()是最好的老师:help(print) 查看函数文档,dir(str) 查看字符串的所有方法。遇到不会的函数,先help()再问人。

2.5 基本输入输出

input() 返回值铁律

零基础第一号错误源:input() 拿到的一定是字符串!即使输入的是数字,也需要用 int()float() 转换。
两数之和 · 经典大坑
# 错误版本:input返回字符串,+变成拼接
a = input("a: ")
b = input("b: ")
print(a + b)
# 输入10、20 → 输出 1020(字符串拼接!)

# 正确版本:先转类型
a = float(input("a: "))
b = float(input("b: "))
print(a + b)
# 输入10、20 → 输出 30.0

print() 的 sep 与 end

print格式化输出
print("a", "b", "c")
a b c  # 默认sep=' '
print("a", "b", "c", sep="-")
a-b-c
print("hello", end=" ")
print("world")
hello world  # 默认end='\n'

name = "张三"; age = 20
print(f"{name}今年{age}岁")  # f-string,推荐
print("{}今年{}岁".format(name, age))  # format()

2.6 模块的使用

模块是包含Python定义和语句的文件。使用模块可以复用代码、组织程序。Python有丰富的标准库模块,如math、random、datetime、os等。

import三种方式
# 方式1:导入整个模块
import random
print(random.randint(1, 10))

# 方式2:导入特定函数
from random import randint, choice
print(randint(1, 10))
print(choice(['A', 'B', 'C']))

# 方式3:导入并起别名
import random as rnd
print(rnd.random())

random 模块

random常用函数
import random
random.random()           # 0~1随机小数
random.randint(1, 10)     # 1~10随机整数(含两端)
random.choice(['N','S','E','W'])  # 随机选一个
random.sample(range(1,35), 7)     # 彩票:7个不重复
random.shuffle([1,2,3,4,5])       # 洗牌:原地打乱

AI 渗透 · AI-06 生成式AI = 带概率的词语接龙

本场高潮:用random模块理解大模型怎么"说话"

生成式AI的本质,就是在每一步根据概率随机选择下一个词——就像"词语接龙",但每个候选词有不同的概率。random.choices()带weights参数,就是AI采样的最小模型。

生成式AI最小演示
import random

# 简化版:给定"今天天气",AI预测下一个词的概率分布
words = ["很好", "不错", "很差", "一般"]
probs = [0.6, 0.25, 0.05, 0.1]  # 概率加起来=1

# 采样10次,看看AI每次会说什么
for i in range(10):
    next_word = random.choices(words, weights=probs, k=1)[0]
    print(f"第{i+1}次: 今天天气{next_word}")

# 这就是大模型生成文本的基本原理:
# 每一步都在做带概率的随机选择
# 温度(temperature)控制概率分布的尖锐程度

2.7 综合应用

例:闰年判断

闰年判断程序
year = int(input("请输入年份:"))
# 闰年规则:能被4整除但不能被100整除,或能被400整除
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
if is_leap:
    print(f"{year}年是闰年")
else:
    print(f"{year}年是平年")

例:海伦公式求三角形面积

海伦公式
import math
a = float(input("边长a:"))
b = float(input("边长b:"))
c = float(input("边长c:"))
s = (a + b + c) / 2  # 半周长
area = math.sqrt(s * (s-a) * (s-b) * (s-c))
print(f"三角形面积 = {area:.2f}")

交互演示区

在浏览器中直接体验Python语法效果(JS模拟)。

演示1:变量赋值与类型

点击"运行"查看结果...

演示2:运算符计算

点击"计算"查看结果...

演示3:AI生成式采样(带概率的随机选择)

点击按钮生成...

本章小结 · 三句话 + 10个AI渗透点

① 变量是便利贴,不是盒子——存的是地址不是值。
② input() 拿到的一定是字符串——1020 记一学期。
③ 加括号不丢人——AI最核心的那行代码只有加减乘。

10个AI渗透点速查

编号对应语法AI概念
AI-01变量与赋值模型参数=变量,训练=不断重新赋值
AI-02算术表达式神经元=加权求和 y=Σwᵢxᵢ+b
AI-03float+比较置信度=float概率,阈值判断分类
AI-04逻辑运算符规则引擎=and/or/not组合条件
AI-05字符串Prompt=字符串,AI的输入就是一段文字
AI-06random模块生成式AI=带概率的词语接龙
AI-07input+print单轮对话=输入→处理→输出
AI-08浮点精度AI幻觉=机器会自信地犯错
AI-09异常处理让AI解释报错(教师演示)
AI-10print格式化Prompt四要素=参数化模板

推荐视频与资源

以下链接均已逐个打开核对可用:前两项是本课程的配套视频与官方教程,其余是公开的优质拓展资源(供课后自学)。外部视频由第三方平台提供,若某个链接失效,复制标题到平台检索即可。

序号资源平台适合内容
1Python编程与数据分析基础(本课程配套视频)学堂在线跟随课程进度预习与复习,与教材章节对应
2Python 官方教程(中文版)python.org权威语法参考,遇到疑问时的第一检索站
3黑马程序员·Python零基础全套教程B站系统补基础:变量、运算符、数据类型逐节讲解
4尚硅谷·Python零基础教程B站与上一套互为补充,选择一套跟完即可
53小时超快速入门Python(动画教学)B站时间紧时的快速通览、考前复习
6深度学习之神经网络的结构(3Blue1Brown)B站理解“神经元=加权求和”,对应 AI-02/03 渗透点
7从词向量到Transformer:AI大模型背后的原理B站理解生成式AI=概率词语接龙,对应 AI-06 渗透点
8浮点算术:问题和限制(Python 官方文档)python.org0.1+0.2≠0.3 的原理,对应 AI-08 浮点精度

还想深入?“变量是内存中的引用”可在B站检索 python 变量 内存;“input 与 print 格式化”可检索 python input print 格式化,建议选择播放量高、更新时间近的版本。