今天我们要完成的目标:掌握Python开发环境的搭建、理解Python基础语法和数据类型、学会使用函数组织代码、能够独立编写简单的命令行工具。
今天结束后你应该能做到:
- 完成Python环境搭建和虚拟环境配置
- 掌握变量、数据类型、运算符的使用
- 理解条件判断和循环的应用场景
- 能够定义和调用函数
- 了解模块导入和pip包管理
- 完成一个命令行工具项目
Python安装与虚拟环境
什么是Python?
Python是一种高级编程语言,语法简洁易读。现在很多AI开发、数据分析、Web开发都在用它。我们这个课程主要是为后面的AI开发做准备,所以Python是必须要掌握的基础工具。
Python可以代替Java实现后端的开发吗 为什么说Python是脚本语言 为什么经常提到Python是用来操作Excel之类的办公软件
安装Python
macOS用户
第一步:检查是否已安装Python
打开终端(Terminal),输入:
python3 --version
如果显示版本号(比如Python 3.11.x),说明已经装好了。
现在的最新版本是 3.14.x 把文档中的版本都统一成这个版本
第二步:如果没装,用Homebrew安装
# 先装Homebrew(如果没有的话)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 然后装Python
brew install python@3.11
Windows用户
第一步:下载Python安装包
去 python.org 下载最新的Python 3.11版本。
第二步:运行安装程序
- 记得勾选 “Add Python to PATH”(这个很重要)
- 点击 “Install Now”
- 等待安装完成
第三步:验证安装
打开命令提示符(CMD),输入:
python --version
虚拟环境:为什么需要它?
我给你举个例子,假设你有多个项目:
- 项目A需要某个库的1.0版本
- 项目B需要同一个库的2.0版本
如果不用虚拟环境,这两个项目就会冲突。虚拟环境就像给每个项目创建一个独立的”工作空间”,互不干扰。
创建第一个虚拟环境
第一步:创建项目文件夹
# macOS/Linux
mkdir ~/my_first_python_project
cd ~/my_first_python_project
# Windows
mkdir C:\my_first_python_project
cd C:\my_first_python_project
第二步:创建虚拟环境
# macOS/Linux
python3 -m venv venv
# Windows
python -m venv venv
这会创建一个名为venv的文件夹,里面包含独立的Python环境。
第三步:激活虚拟环境
# macOS/Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
激活后,命令行前面会出现(venv)标识。
第四步:退出虚拟环境
deactivate
练习1:环境搭建实战
我先演示一遍,创建一个”AI助手项目”的环境:
mkdir ai_assistant
cd ai_assistant
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
现在轮到你了,请完成以下操作:
- 创建一个名为
chatbot_project的文件夹 - 在里面创建虚拟环境
- 激活虚拟环境
- 截图证明激活成功(命令行显示
(venv))
Python基础语法
第一个Python程序
第一步:创建Python文件
在项目文件夹中创建hello.py:
print("Hello, Python!")
第二步:运行程序
python hello.py
输出:Hello, Python!
变量:存储数据的容器
我把变量理解成一个带标签的盒子,可以存放各种数据。
# 定义变量
name = "小明"
age = 25
height = 1.75
is_student = True
# 打印变量
print(name) # 输出: 小明
print(age) # 输出: 25
print(height) # 输出: 1.75
print(is_student) # 输出: True
变量命名规则:
- 可以包含字母、数字、下划线
- 必须以字母或下划线开头
- 不能使用Python关键字(比如
if、for等) - 推荐使用小写字母+下划线(比如
user_name)
练习2:个人信息卡
我先写一个示例:
# personal_info.py
name = "张老师"
age = 30
city = "北京"
hobby = "编程"
print("姓名:", name)
print("年龄:", age)
print("城市:", city)
print("爱好:", hobby)
现在你来试试,创建my_info.py,定义以下变量并打印:
- 你的姓名
- 你的年龄
- 你最喜欢的编程语言(可以写”Python”)
- 你的梦想职业
数据类型
Python有几种基本数据类型,就像现实中不同的东西需要不同的容器来装。
字符串(str):文本数据
# 单引号或双引号都可以
message1 = 'Hello'
message2 = "World"
# 多行字符串
long_text = """
这是一段
很长的
文本
"""
# 字符串拼接
greeting = "你好" + "," + "世界"
print(greeting) # 输出: 你好,世界
# 字符串格式化(我推荐用这种方式)
name = "小红"
age = 20
intro = f"我叫{name},今年{age}岁"
print(intro) # 输出: 我叫小红,今年20岁
整数(int)和浮点数(float)
# 整数
count = 100
temperature = -5
# 浮点数
price = 19.99
pi = 3.14159
# 数学运算
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
布尔值(bool):真或假
is_raining = True
is_sunny = False
# 比较运算
age = 18
print(age >= 18) # True
print(age < 18) # False
# 逻辑运算
has_ticket = True
has_time = False
can_watch_movie = has_ticket and has_time
print(can_watch_movie) # False
练习3:计算器
我先演示一个简单计算器:
# calculator.py
num1 = 15
num2 = 4
print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
print(f"{num1} ÷ {num2} = {num1 / num2}")
现在你来练习:
-
购物清单计算:创建
shopping.py- 苹果单价:5.5元
- 购买数量:3个
- 计算总价并打印
-
温度转换:创建
temperature.py- 摄氏度:25
- 转换为华氏度:
fahrenheit = celsius * 9/5 + 32 - 打印结果
-
年龄判断:创建
age_check.py- 定义变量
age = 16 - 判断是否成年(
age >= 18) - 打印结果
- 定义变量
控制流:让程序做决策
if/else:条件判断
程序需要根据不同情况做出不同的反应,就像红绿灯控制交通一样。
# 基本if语句
age = 20
if age >= 18:
print("你已经成年了")
# if-else语句
temperature = 15
if temperature > 25:
print("天气很热,记得开空调")
else:
print("天气凉爽,适合出门")
# if-elif-else:多条件判断
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
注意缩进!Python使用缩进(4个空格)来表示代码块,这点很重要。
练习4:智能推荐系统
我先写一个天气穿衣助手:
# weather_advisor.py
temperature = 28
if temperature > 30:
print("建议:穿短袖+短裤,记得防晒")
elif temperature > 20:
print("建议:穿T恤+长裤")
elif temperature > 10:
print("建议:穿外套")
else:
print("建议:穿羽绒服")
现在你来练习:
-
电影分级系统:创建
movie_rating.py- 定义变量
age - 如果年龄<6:推荐动画片
- 如果6-12:推荐儿童电影
- 如果13-17:推荐青少年电影
- 如果>=18:可以观看所有电影
- 定义变量
-
BMI健康指数:创建
bmi_calculator.py- 体重(kg):70
- 身高(m):1.75
- 计算BMI:
bmi = weight / (height ** 2) - 判断:<18.5偏瘦,18.5-24正常,24-28偏胖,>28肥胖
-
登录验证:创建
login.py- 定义
username = "admin"和password = "123456" - 判断用户名和密码是否都正确
- 正确打印”登录成功”,否则打印”用户名或密码错误”
- 定义
循环:重复执行任务
for循环:遍历序列
当你需要重复做某件事时,循环就派上用场了。
# 打印1到5
for i in range(1, 6):
print(i)
# 输出:
# 1
# 2
# 3
# 4
# 5
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# 输出:
# 我喜欢吃苹果
# 我喜欢吃香蕉
# 我喜欢吃橙子
while循环:条件循环
# 倒计时
count = 5
while count > 0:
print(f"倒计时: {count}")
count = count - 1
print("发射!")
练习5:循环实战
我先演示一个九九乘法表:
# multiplication_table.py
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行
现在你来练习:
-
打印星星:创建
stars.py* ** *** **** ***** -
求和计算器:创建
sum_calculator.py- 计算1+2+3+…+100的和
- 打印结果
-
密码重试:创建
password_retry.py- 正确密码:
"python123" - 用户有3次机会输入(先用变量模拟,不用input)
- 每次错误提示剩余次数
- 3次都错误后提示”账号已锁定”
- 正确密码:
函数:代码的乐高积木
函数就像一个可以重复使用的工具,你定义一次,可以多次调用。这样可以让代码更简洁,也更容易维护。
定义和调用函数
# 定义函数
def greet():
print("你好,欢迎学习Python!")
# 调用函数
greet()
greet()
greet()
带参数的函数
def greet_person(name):
print(f"你好,{name}!")
greet_person("小明") # 输出: 你好,小明!
greet_person("小红") # 输出: 你好,小红!
返回值
def add(a, b):
result = a + b
return result
sum1 = add(5, 3)
sum2 = add(10, 20)
print(sum1) # 输出: 8
print(sum2) # 输出: 30
默认参数
def make_coffee(size="中杯", sugar=True):
print(f"制作{size}咖啡,{'加糖' if sugar else '不加糖'}")
make_coffee() # 中杯,加糖
make_coffee("大杯") # 大杯,加糖
make_coffee("小杯", False) # 小杯,不加糖
练习6:函数工具箱
我先写一个温度转换工具:
# temperature_converter.py
def celsius_to_fahrenheit(celsius):
"""摄氏度转华氏度"""
fahrenheit = celsius * 9/5 + 32
return fahrenheit
def fahrenheit_to_celsius(fahrenheit):
"""华氏度转摄氏度"""
celsius = (fahrenheit - 32) * 5/9
return celsius
# 测试
print(f"25°C = {celsius_to_fahrenheit(25)}°F")
print(f"77°F = {fahrenheit_to_celsius(77)}°C")
现在你来练习:
-
计算器函数:创建
calculator_functions.py- 定义4个函数:
add(),subtract(),multiply(),divide() - 每个函数接收两个参数并返回结果
- 测试所有函数
- 定义4个函数:
-
判断奇偶数:创建
odd_even.py- 定义函数
is_even(number) - 如果是偶数返回
True,否则返回False - 测试数字:2, 7, 100, 33
- 定义函数
-
个性化问候:创建
greeting_system.py- 定义函数
greet(name, time="早上") - 根据时间返回不同问候语
- 早上:“早上好”,下午:“下午好”,晚上:“晚上好”
- 测试不同参数组合
- 定义函数
模块与包管理
什么是模块?
模块就像一个工具箱,包含了别人写好的函数和类,你可以直接拿来用。这样就不用每次都从零开始写代码了。
导入标准库模块
# 导入整个模块
import math
print(math.pi) # 3.141592653589793
print(math.sqrt(16)) # 4.0
# 导入特定函数
from random import randint, choice
print(randint(1, 10)) # 随机整数
print(choice(["红", "黄", "蓝"])) # 随机选择
# 导入并重命名
import datetime as dt
now = dt.datetime.now()
print(now)
使用pip安装第三方库
# 激活虚拟环境后
pip install requests
# 查看已安装的包
pip list
# 安装特定版本
pip install requests==2.28.0
练习7:模块实战
我先写一个随机密码生成器:
# password_generator.py
import random
import string
def generate_password(length=8):
"""生成随机密码"""
characters = string.ascii_letters + string.digits
password = ''.join(random.choice(characters) for _ in range(length))
return password
# 生成5个密码
for i in range(5):
print(f"密码{i+1}: {generate_password(12)}")
现在你来练习:
-
日期时间工具:创建
datetime_tool.py- 导入
datetime模块 - 打印当前日期和时间
- 计算你的生日距离今天多少天
- 导入
-
随机抽奖:创建
lottery.py- 导入
random模块 - 定义参与者列表:
["小明", "小红", "小刚", "小丽", "小华"] - 随机抽取3名幸运观众
- 导入
-
数学计算器:创建
math_calculator.py- 导入
math模块 - 计算圆的面积(半径=5)
- 计算2的10次方
- 计算100的平方根
- 导入
综合实战:命令行工具
现在我们把今天学到的所有知识整合起来,做一个实用的命令行工具。
最终项目:个人任务管理器
我先给你演示完整代码:
# task_manager.py
"""
简单的任务管理器
功能:添加任务、查看任务、标记完成
"""
# 任务列表(使用列表存储)
tasks = []
def show_menu():
"""显示菜单"""
print("\n" + "="*40)
print("个人任务管理器")
print("="*40)
print("1. 查看所有任务")
print("2. 添加新任务")
print("3. 标记任务完成")
print("4. 退出程序")
print("="*40)
def show_tasks():
"""显示所有任务"""
if len(tasks) == 0:
print("\n暂无任务,真棒!")
return
print("\n当前任务列表:")
for i, task in enumerate(tasks, 1):
status = "[完成]" if task["completed"] else "[待办]"
print(f"{i}. {status} {task['name']}")
def add_task(task_name):
"""添加新任务"""
task = {
"name": task_name,
"completed": False
}
tasks.append(task)
print(f"\n已添加任务:{task_name}")
def complete_task(task_number):
"""标记任务完成"""
if 1 <= task_number <= len(tasks):
tasks[task_number - 1]["completed"] = True
print(f"\n任务已完成:{tasks[task_number - 1]['name']}")
else:
print("\n任务编号无效")
def main():
"""主程序"""
print("欢迎使用任务管理器!")
# 模拟用户操作(实际应用中会用input())
add_task("学习Python基础")
add_task("完成练习题")
add_task("复习今天的内容")
show_tasks()
complete_task(1)
show_tasks()
# 运行程序
if __name__ == "__main__":
main()
运行结果:
欢迎使用任务管理器!
已添加任务:学习Python基础
已添加任务:完成练习题
已添加任务:复习今天的内容
当前任务列表:
1. [待办] 学习Python基础
2. [待办] 完成练习题
3. [待办] 复习今天的内容
任务已完成:学习Python基础
当前任务列表:
1. [完成] 学习Python基础
2. [待办] 完成练习题
3. [待办] 复习今天的内容
学生最终挑战
选择以下一个项目完成:
项目A:简单计算器
创建simple_calculator.py,要求:
- 定义加减乘除四个函数
- 创建主函数,模拟计算过程
- 至少完成3次不同的计算
- 打印清晰的结果
示例输出:
=== 简单计算器 ===
10 + 5 = 15
20 - 8 = 12
6 × 7 = 42
项目B:学生成绩管理
创建grade_manager.py,要求:
- 创建3个学生的成绩字典(姓名、数学、英语、Python)
- 定义函数计算每个学生的平均分
- 定义函数判断是否及格(平均分>=60)
- 打印所有学生的成绩报告
示例输出:
=== 成绩报告 ===
学生:小明
数学:85, 英语:90, Python:88
平均分:87.67
状态:优秀
学生:小红
...
项目C:猜数字游戏
创建guess_number.py,要求:
- 使用
random模块生成1-100的随机数 - 模拟用户猜测5次(用变量代替input)
- 每次猜测后提示”太大了”或”太小了”
- 猜对后显示用了几次
示例输出:
=== 猜数字游戏 ===
我想了一个1-100的数字,你来猜!
第1次猜测:50
太小了!
第2次猜测:75
太大了!
第3次猜测:62
恭喜你猜对了!用了3次。
今日总结
知识点回顾
今天我们学了这些内容:
环境搭建
- Python安装与验证
- 虚拟环境的创建和使用
基础语法
- 变量定义与命名规则
- 数据类型:字符串、整数、浮点数、布尔值
- 运算符:算术、比较、逻辑
控制流
- if/elif/else条件判断
- for循环和while循环
- 循环嵌套
函数
- 函数定义与调用
- 参数传递
- 返回值
- 默认参数
模块
- 导入标准库
- 使用pip安装第三方库
- 常用模块:math、random、datetime
作业清单
请完成以下作业,巩固今天的学习:
- 必做:完成所有课堂练习(练习1-7)
- 必做:完成一个最终挑战项目(A/B/C任选其一)
- 选做:尝试组合多个知识点,创建自己的小工具
常见问题FAQ
Q1: 为什么我的代码报错IndentationError?
A: Python对缩进非常敏感,确保使用4个空格(或1个Tab),不要混用。
Q2: range(1, 5)为什么只打印到4?
A: range()是左闭右开区间,range(1, 5)生成[1, 2, 3, 4]。
Q3: 如何查看函数的用法?
A: 使用help()函数,例如:help(print)
Q4: 虚拟环境激活后,如何确认在使用?
A: 命令行前面会显示(venv),且运行which python会显示虚拟环境路径。
下节预告
Day 2我们会学习:
- 列表、字典、集合的高级用法
- 列表推导式
- 文件读写(JSON、CSV)
- 异常处理
附录:快速参考
Python常用快捷操作
# 多变量赋值
a, b, c = 1, 2, 3
# 交换变量
a, b = b, a
# 字符串乘法
print("=" * 20) # ====================
# 判断类型
print(type(123)) # <class 'int'>
# 类型转换
num_str = "123"
num_int = int(num_str)
常用内置函数
| 函数 | 说明 | 示例 |
|---|---|---|
print() | 打印输出 | print("Hello") |
len() | 获取长度 | len("Python") → 6 |
type() | 获取类型 | type(123) → int |
int() | 转换为整数 | int("10") → 10 |
str() | 转换为字符串 | str(123) → “123” |
range() | 生成数字序列 | range(1, 5) |
sum() | 求和 | sum([1,2,3]) → 6 |
max() | 最大值 | max([1,5,3]) → 5 |
min() | 最小值 | min([1,5,3]) → 1 |
恭喜你完成Day 1的学习!记得完成作业,明天见!