准备好你的Python环境(推荐Python 3.8+,可以用IDLE、VSCode或Jupyter Notebook),我们开始吧!
---
### 第一步:Python基础
#### 1. 安装和设置Python
- **下载Python**:访问 [python.org](https://www.python.org/),下载最新版本(目前是3.11或更高)。安装时勾选“Add Python to PATH”。
- **验证安装**:打开终端(Windows CMD、Mac/Linux Terminal),输入以下命令:
```bash
python --version
```
如果返回版本号(如 `Python 3.11.5`),说明安装成功。
- **选择编辑器**:
- 初学者:用IDLE(Python自带)或Online IDE(如Replit)。
- 推荐:VSCode(安装Python扩展)或Jupyter Notebook(适合数据分析)。
#### 2. 第一个Python程序
创建一个简单的程序,输出“Hello, World!”:
```python
print("Hello, World!")
```
- **运行方法**:
1. 打开编辑器,输入代码。
2. 保存为 `hello.py`(文件名以 `.py` 结尾)。
3. 终端运行:`python hello.py`。
- **解释**:`print()` 是一个内置函数,用于在屏幕上输出内容。
**练习1**:修改代码,输出你的名字,比如 `Hello, 张伟!`。
#### 3. 变量和数据类型
Python支持多种数据类型,变量无需提前声明类型:
```python
# 变量赋值
name = "Alice" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
# 输出变量
print("姓名:", name)
print("年龄:", age)
print("身高:", height, "米")
print("是否是学生:", is_student)
```
- **数据类型**:
- 字符串(`str`):用 `""` 或 `''` 包裹。
- 整数(`int`):如 `25`。
- 浮点数(`float`):如 `1.75`。
- 布尔值(`bool`):`True` 或 `False`。
- **动态类型**:Python会自动推断变量类型。
**练习2**:创建一个变量存储你的年龄和城市,输出类似“张伟,25岁,来自上海”。
#### 4. 基本运算
Python支持数学运算和字符串操作:
```python
# 数学运算
a = 10
b = 3
print("加法:", a + b) # 13
print("减法:", a - b) # 7
print("乘法:", a * b) # 30
print("除法:", a / b) # 3.333...
print("整除:", a // b) # 3
print("取余:", a % b) # 1
print("幂:", a ** b) # 1000
# 字符串拼接
greeting = "Hello, " + name
print(greeting) # Hello, Alice
```
- **注意**:字符串拼接用 `+`,但不能直接将字符串和数字拼接(需转换类型)。
**练习3**:计算你的年龄加上10年后的年龄,并输出结果。
#### 5. 用户输入
用 `input()` 获取用户输入:
```python
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:")) # 转换为整数
print(f"你好,{name}!明年你将是 {age + 1} 岁。")
```
- **解释**:
- `input()` 返回字符串,需用 `int()` 或 `float()` 转换为数字。
- `f-string`(格式化字符串):用 `f"..."` 嵌入变量,简洁优雅。
**练习4**:写一个程序,询问用户的身高(米)和体重(公斤),计算并输出BMI(公式:体重/身高²)。
#### 6. 条件语句
条件语句用于决策:
```python
age = int(input("请输入你的年龄:"))
if age >= 18:
print("你是成年人!")
else:
print("你还未成年!")
```
- **结构**:
- `if 条件:`:条件为真时执行。
- `else:`:条件为假时执行。
- 可添加 `elif` 检查更多条件:
```python
score = int(input("请输入你的分数:"))
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
```
**练习5**:写一个程序,输入一个数字,判断它是正数、负数还是零。
#### 7. 循环
循环用于重复执行代码:
- **for循环**:遍历已知次数或序列。
```python
for i in range(5): # 0到4
print(i)
```
- **while循环**:基于条件重复。
```python
count = 1
while count <= 5:
print(count)
count += 1
```
- **控制语句**:
- `break`:跳出循环。
- `continue`:跳到下一次循环。
**练习6**:用循环输出1到10的偶数。
---
### 第二步:数据结构
#### 8. 列表(List)
列表是Python中最常用的数据结构,用于存储多个元素:
```python
fruits = ["苹果", "香蕉", "橙子"]
print(fruits[0]) # 访问第一个元素:苹果
fruits.append("葡萄") # 添加元素
print(fruits) # ['苹果', '香蕉', '橙子', '葡萄']
fruits.remove("香蕉") # 删除元素
print(fruits) # ['苹果', '橙子', '葡萄']
```
- **切片**:`fruits[0:2]` 返回 `['苹果', '橙子']`。
- **列表推导式**:
```python
squares = [x**2 for x in range(1, 6)] # [1, 4, 9, 16, 25]
```
**练习7**:创建一个包含5个你喜欢的食物的列表,输出第二个食物,并添加一个新食物。
#### 9. 字典(Dictionary)
字典存储键值对:
```python
student = {"name": "Alice", "age": 20, "major": "计算机"}
print(student["name"]) # Alice
student["grade"] = "A" # 添加键值对
print(student) # {'name': 'Alice', 'age': 20, 'major': '计算机', 'grade': 'A'}
```
**练习8**:创建一个字典存储你的个人信息(姓名、年龄、城市),输出城市并添加一个“爱好”键。
#### 10. 元组和集合
- **元组(Tuple)**:不可变序列。
```python
point = (3, 4)
print(point[0]) # 3
```
- **集合(Set)**:无序、不重复。
```python
numbers = {1, 2, 2, 3}
print(numbers) # {1, 2, 3}
```
**练习9**:创建一个集合,包含3个重复数字,输出去重后的结果。
---
### 第三步:函数
函数让代码更模块化:
```python
def greet(name):
return f"你好,{name}!"
print(greet("Alice")) # 你好,Alice!
# 默认参数
def add(a, b=10):
return a + b
print(add(5)) # 15
print(add(5, 20)) # 25
```
**练习10**:写一个函数,接受两个数字,返回它们的乘积。
---
### 第四步:模块和库
Python有强大的标准库和第三方库:
```python
import random
print(random.randint(1, 10)) # 随机数1-10
import math
print(math.sqrt(16)) # 4.0
```
- **安装第三方库**:
```bash
pip install requests
```
- **示例**:用 `requests` 获取网页内容:
```python
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 200表示成功
```
**练习11**:用 `random` 模块生成一个1到100的随机数,判断它是奇数还是偶数。
---
### 第五步:进阶主题
#### 11. 文件操作
读写文件:
```python
# 写文件
with open("test.txt", "w") as file:
file.write("Hello, Python!")
# 读文件
with open("test.txt", "r") as file:
content = file.read()
print(content) # Hello, Python!
```
**练习12**:创建一个文件,写入你的名字,读取并打印内容。
#### 12. 异常处理
处理错误:
```python
try:
num = int(input("请输入一个数字:"))
print(100 / num)
except ZeroDivisionError:
print("不能除以零!")
except ValueError:
print("请输入有效数字!")
```
**练习13**:写一个程序,接受用户输入的两个数字,计算它们的除法,处理可能的错误。
---
### 第六步:实践项目
#### 项目1:简单计算器
```python
def calculator():
num1 = float(input("请输入第一个数字:"))
op = input("请输入运算符(+,-,*,/):")
num2 = float(input("请输入第二个数字:"))
if op == "+":
print(f"结果:{num1 + num2}")
elif op == "-":
print(f"结果:{num1 - num2}")
elif op == "*":
print(f"结果:{num1 * num2}")
elif op == "/":
if num2 != 0:
print(f"结果:{num1 / num2}")
else:
print("除数不能为零!")
else:
print("无效运算符!")
calculator()
```
**练习14**:扩展计算器,添加幂运算(`^`)和取余(`%`)。
#### 项目2:待办事项列表
```python
todos = []
def todo_list():
while True:
action = input("输入 add/view/remove/exit:")
if action == "add":
task = input("请输入任务:")
todos.append(task)
elif action == "view":
for i, task in enumerate(todos, 1):
print(f"{i}. {task}")
elif action == "remove":
index = int(input("请输入要删除的任务编号:")) - 1
if 0 <= index < len(todos):
todos.pop(index)
else:
print("无效编号!")
elif action == "exit":
break
else:
print("无效命令!")
todo_list()
```
**练习15**:给待办事项列表添加“clear”功能,清空所有任务。
---
### 学习建议
1. **每天练习**:每天完成1-2个练习,巩固知识。
2. **调试代码**:出错时阅读错误信息,尝试理解问题。
3. **扩展学习**:
- 数据分析:学习 `pandas` 和 `matplotlib`。
- Web开发:学习 `Flask` 或 `Django`。
- 自动化:学习 `selenium` 或 `pyautogui`。
4. **资源推荐**:
- 官方教程:https://docs.python.org/3/
- 免费课程:如Coursera、edX或B站的Python教程。
- 练习平台:LeetCode、HackerRank、Codewars。
---