> 从零开始学 Python,从这一期正式开始。
## 一、为什么选择 Python?
Python 连续多年蝉联全球最受欢迎编程语言榜首。原因很简单:
1.**语法简洁**:接近自然语言,新手容易上手
2.**生态强大**:数据处理、Web 开发、人工智能、自动化运维……无所不能
3.**就业广阔**:2026 年 Python 相关岗位需求增长超过 30%
4.**社区活跃**:Stack Overflow、GitHub、知乎、B 站上有海量学习资源
## 二、环境搭建(5 分钟搞定)
### 2.1 安装 Python
访问官网 [python.org](https://www.python.org/downloads/) 下载最新版(2026 年主推 Python 3.13+)。
>**关键一步**:安装时务必勾选 **"Add Python to PATH"**!
### 2.2 验证安装
打开终端(Windows 用 PowerShell 或 CMD),运行:
```bash
python--version
# 应输出类似:Python 3.13.2
```
### 2.3 选择开发工具
| 工具 | 推荐理由 | 适合人群 |
|------|---------|---------|
| **VS Code** | 免费、插件丰富、Python 体验极佳 | 所有人 |
| **PyCharm** | 功能最全的专用 IDE | 专业开发者 |
| **Jupyter Notebook** | 交互式写代码+绘图 | 数据科学方向 |
**推荐新人使用 VS Code + Python 插件**,轻量且强大。
### 2.4 虚拟环境(强烈建议)
每个项目用独立的虚拟环境,避免依赖冲突:
```bash
# 创建虚拟环境
python-mvenvmy-env
# 激活环境
# Windows:
my-env\Scripts\activate
# macOS/Linux:
sourcemy-env/bin/activate
# 退出环境
deactivate
```
### 2.5 使用 uv(2026 年最流行)
`uv` 是用 Rust 编写的超快 Python 包管理器,速度比 pip 快 100 倍:
```bash
# 安装 uv
pipinstalluv
# 一键创建项目+安装依赖
uvinitmy-project
cdmy-project
uvaddnumpypandasmatplotlib
```
## 三、Python 基础语法
### 3.1 你的第一个程序
```python
print("Hello, World!")
print("你好,Python!")
```
输出:
```
Hello, World!
你好,Python!
```
### 3.2 变量与数据类型
Python 是动态类型语言,不需要提前声明变量类型:
```python
# 字符串(文字)
name = "张三"
city = "北京"
# 整数
age = 25
year = 2026
# 浮点数(小数)
height = 1.75
temperature = -3.5
# 布尔值(True/False)
is_student = True
has_car = False
# 查看变量类型
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(height)) # <class 'float'>
```
### 3.3 输入与输出
```python
# input() 获取用户输入
username = input("请输入你的名字: ")
age = input("请输入你的年龄: ")
print(f"你好 {username},{age} 岁啦!")
```
>**注意**:`input()` 返回的都是字符串,需要手动转换类型:
> ```python
>age = int(input("请输入年龄: ")) # 转为整数
>score = float(input("请输入成绩: ")) # 转为浮点数
> ```
### 3.4 f-string 格式化字符串(重要!)
这是 Python 中最常用的字符串格式化方式:
```python
name = "李四"
age = 22
salary = 15000.5
# 基础用法
print(f"我叫{name},今年{age}岁")
# 嵌入表达式
print(f"明年我就{age + 1}岁了")
# 格式化数字(保留小数位)
print(f"月薪:¥{salary:,.2f}") # 输出:月薪:¥15,000.50
# 字符串截断
long_text = "这是一个很长的文本"
print(f"简介:{long_text[:4]}...") # 输出:简介:这是一个很...
```
## 四、控制流(程序的"决策大脑")
### 4.1 条件判断(if / elif / else)
```python
score = 85
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
print(f"你的等级是:{grade}") # 输出:你的等级是:良好
```
### 4.2 for 循环
```python
# 遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# 使用 range() 生成数字序列
for i inrange(5): # 0, 1, 2, 3, 4
print(i)
# range(起始, 结束, 步长)
for i inrange(2, 11, 2): # 2, 4, 6, 8, 10
print(i, end=" ") # 输出:2 4 6 8 10
```
### 4.3 while 循环
```python
# 猜数字小游戏
import random
target = random.randint(1, 100) # 生成 1-100 的随机数
attempts = 0
while attempts < 7: # 最多猜 7 次
guess = int(input(f"第 {attempts + 1} 次,请输入 1-100 的数字: "))
attempts += 1
if guess < target:
print("太小了!")
elif guess > target:
print("太大了!")
else:
print(f"恭喜你!猜对了!答案就是 {target},用了 {attempts} 次")
break
else:
print(f"遗憾!7 次没猜到,答案是 {target}")
```
### 4.4 break 和 continue
```python
# break:跳出整个循环
for i inrange(10):
if i == 5:
print("在第 5 个数时跳出循环")
break
print(i, end=" ") # 输出:0 1 2 3 4
# continue:跳过本次循环,继续下一次
for i inrange(10):
if i % 2 == 0: # 如果是偶数
continue# 跳过
print(i, end=" ") # 只输出奇数:1 3 5 7 9
```
## 五、函数(代码复用的神器)
### 5.1 定义与调用
```python
# 最基本的函数
defgreet():
print("你好,欢迎来到 Python 世界!")
greet() # 调用函数
```
### 5.2 参数传递
```python
defgreet(name, greeting="你好"):
print(f"{greeting},{name}!")
# 不同的调用方式
greet("张三") # 你好,张三!
greet("李四", "早上好") # 早上好,李四!
greet(greeting="晚上好", name="王五") # 晚上好,王五!(关键字参数)
```
### 5.3 返回值
```python
defcalculate_area(radius):
"""计算圆的面积"""
pi = 3.14159
area = pi * radius ** 2
return area
radius = 5
result = calculate_area(radius)
print(f"半径为 {radius} 的圆面积是: {result:.2f}") # 78.54
```
### 5.4 多重返回值
```python
defget_stats(numbers):
"""返回一组数据的统计信息"""
min_val = min(numbers)
max_val = max(numbers)
avg = sum(numbers) / len(numbers)
return min_val, avg, max_val # 元组返回
scores = [85, 92, 78, 90, 88]
minimum, average, maximum = get_stats(scores)
print(f"最低分: {minimum}, 平均分: {average:.1f}, 最高分: {maximum}")
```
### 5.5 Lambda 匿名函数
```python
# 简短的函数可以用 lambda 一行搞定
square = lambdax: x ** 2
print(square(5)) # 25
# 配合 sorted() 使用
students = [("张三", 85), ("李四", 92), ("王五", 78)]
# 按成绩排序
sorted_students = sorted(students, key=lambdas: s[1], reverse=True)
print(sorted_students)
# [('李四', 92), ('张三', 85), ('王五', 78)]
```
## 六、实战项目:学生成绩管理系统
把前面学的知识串起来,做一个实用的小程序:
```python
import random
defmain():
print("=" * 50)
print(" 📝 学生成绩管理系统")
print("=" * 50)
students = {}
# 添加学生成绩
defadd_student(name, score):
if name in students:
print(f"⚠️ {name} 已存在,更新成绩...")
students[name] = score
else:
students[name] = score
print(f"✅ {name} 的成绩已录入:{score} 分")
# 查看所有成绩
defshow_all():
ifnot students:
print("📭 暂无学生数据")
return
print("\n" + "-" * 40)
for name, score in students.items():
grade = "优秀"if score >= 90else"良好"if score >= 80else"及格"if score >= 60else"不及格"
print(f" {name}: {score:4.1f} 分 ({grade})")
print("-" * 40)
# 统计信息
scores = list(students.values())
print(f" 最高分: {max(scores):.1f}")
print(f" 最低分: {min(scores):.1f}")
print(f" 平均分: {sum(scores)/len(scores):.1f}")
print(f" 总人数: {len(scores)}")
print()
# 演示数据
demo_names = ["张三", "李四", "王五", "赵六", "孙七", "周八", "吴九", "郑十"]
for name in demo_names:
score = random.randint(60, 100)
add_student(name, score)
# 查看所有成绩
show_all()
# 查找特定学生
target = input("请输入要查询的学生姓名(回车跳过): ").strip()
if target:
if target in students:
grade = "优秀"if students[target] >= 90else"良好"if students[target] >= 80else"及格"if students[target] >= 60else"不及格"
print(f"📊 {target} 的成绩是 {students[target]} 分,等级:{grade}")
else:
print(f"❌ 找不到 {target}")
if__name__ == "__main__":
main()
```
运行效果示例:
```
==================================================
📝 学生成绩管理系统
==================================================
✅ 张三 的成绩已录入:87 分
✅ 李四 的成绩已录入:95 分
✅ 王五 的成绩已录入:72 分
...
----------------------------------------
张三: 87.0 分 (良好)
李四: 95.0 分 (优秀)
王五: 72.0 分 (及格)
...
----------------------------------------
最高分: 95.0
最低分: 65.0
平均分: 81.4
总人数: 8
```
## 七、本节要点总结
| 知识点 | 说明 |
|--------|------|
| **变量** | 无需声明类型,直接赋值即可 |
| **数据类型** | str(字符串)、int(整数)、float(浮点数)、bool(布尔) |
| **f-string** | `f"值: {变量}"`,最优雅的字符串格式化 |
| **if/elif/else** | 条件分支,缩进决定代码块 |
| **for 循环** | 遍历序列或配合 `range()` |
| **while 循环** | 条件为 True 时重复执行 |
| **break/continue** | 跳出循环 / 跳过本次 |
| **函数 def** | 用 `def` 定义,可传参、有返回值 |
| **lambda** | 匿名函数,一行搞定简单逻辑 |
## 八、练习题
### 练习 1:温度转换器
```python
# 提示用户输入温度值和单位(C 摄氏度 / F 华氏度)
# 转换为另一种单位后输出
# 公式:F = C × 9/5 + 32
# C = (F - 32) × 5/9
temp = float(input("请输入温度值: "))
unit = input("请输入单位 (C/F): ").upper()
if unit == "C":
result = temp * 9 / 5 + 32
print(f"{temp}°C = {result:.1f}°F")
elif unit == "F":
result = (temp - 32) * 5 / 9
print(f"{temp}°F = {result:.1f}°C")
else:
print("❌ 单位输入错误,请输入 C 或 F")
```
### 练习 2:九九乘法表
```python
for i inrange(1, 10):
for j inrange(1, i + 1):
print(f"{j}×{i}={i*j:2}", end=" ")
print()
```
### 练习 3:密码强度检测器
```python
password = input("请输入密码: ")
iflen(password) < 8:
strength = "弱"
eliflen(password) < 12:
strength = "中等"
else:
has_upper = any(c.isupper() for c in password)
has_lower = any(c.islower() for c in password)
has_digit = any(c.isdigit() for c in password)
if has_upper and has_lower and has_digit:
strength = "强"
else:
strength = "中等"
print(f"密码强度: {strength}")
```
### 练习 4:简易计算器
```python
defcalculator(a, b, operator):
if operator == "+":
return a + b
elif operator == "-":
return a - b
elif operator == "*":
return a * b
elif operator == "/":
if b == 0:
return"错误:除数不能为零!"
return a / b
else:
return"错误:不支持的操作符"
num1 = float(input("请输入第一个数字: "))
num2 = float(input("请输入第二个数字: "))
op = input("请输入操作符 (+, -, *, /): ")
result = calculator(num1, num2, op)
print(f"计算结果: {result}")
```
### 练习 5:杨辉三角
```python
defprint_pascal_triangle(rows):
triangle = []
for i inrange(rows):
row = [1]
if i > 0:
prev = triangle[i-1]
for j inrange(len(prev) - 1):
row.append(prev[j] + prev[j+1])
row.append(1)
triangle.append(row)
for row in triangle:
print(" ".join(str(x) for x in row).center(rows * 4))
n = 6
print_pascal_triangle(n)
```
## 下期预告
**Python 教程 Episode 02 — 数据结构:列表、元组、字典、集合**
- 列表推导式:一行代码搞定数据转换
- 字典的高级用法:嵌套、推导、Counter
- 集合的去重与运算
- 字符串处理常用技巧(split/join/replace/正则基础)
- 实战:用数据结构优化刚才的成绩管理系统
*如果觉得本系列对你有帮助,欢迎点赞、评论、转发给想学 Python 的朋友!有任何问题,在留言区讨论。*