Series Article

Day01_Python基础与开发环境

今天我们要完成的目标:掌握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

现在轮到你了,请完成以下操作:

  1. 创建一个名为chatbot_project的文件夹
  2. 在里面创建虚拟环境
  3. 激活虚拟环境
  4. 截图证明激活成功(命令行显示(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关键字(比如iffor等)
  • 推荐使用小写字母+下划线(比如user_name

练习2:个人信息卡

我先写一个示例:

# personal_info.py
name = "张老师"
age = 30
city = "北京"
hobby = "编程"

print("姓名:", name)
print("年龄:", age)
print("城市:", city)
print("爱好:", hobby)

现在你来试试,创建my_info.py,定义以下变量并打印:

  1. 你的姓名
  2. 你的年龄
  3. 你最喜欢的编程语言(可以写”Python”)
  4. 你的梦想职业

数据类型

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}")

现在你来练习:

  1. 购物清单计算:创建shopping.py

    • 苹果单价:5.5元
    • 购买数量:3个
    • 计算总价并打印
  2. 温度转换:创建temperature.py

    • 摄氏度:25
    • 转换为华氏度:fahrenheit = celsius * 9/5 + 32
    • 打印结果
  3. 年龄判断:创建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("建议:穿羽绒服")

现在你来练习:

  1. 电影分级系统:创建movie_rating.py

    • 定义变量age
    • 如果年龄<6:推荐动画片
    • 如果6-12:推荐儿童电影
    • 如果13-17:推荐青少年电影
    • 如果>=18:可以观看所有电影
  2. BMI健康指数:创建bmi_calculator.py

    • 体重(kg):70
    • 身高(m):1.75
    • 计算BMI:bmi = weight / (height ** 2)
    • 判断:<18.5偏瘦,18.5-24正常,24-28偏胖,>28肥胖
  3. 登录验证:创建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()  # 换行

现在你来练习:

  1. 打印星星:创建stars.py

    *
    **
    ***
    ****
    *****
  2. 求和计算器:创建sum_calculator.py

    • 计算1+2+3+…+100的和
    • 打印结果
  3. 密码重试:创建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")

现在你来练习:

  1. 计算器函数:创建calculator_functions.py

    • 定义4个函数:add(), subtract(), multiply(), divide()
    • 每个函数接收两个参数并返回结果
    • 测试所有函数
  2. 判断奇偶数:创建odd_even.py

    • 定义函数is_even(number)
    • 如果是偶数返回True,否则返回False
    • 测试数字:2, 7, 100, 33
  3. 个性化问候:创建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)}")

现在你来练习:

  1. 日期时间工具:创建datetime_tool.py

    • 导入datetime模块
    • 打印当前日期和时间
    • 计算你的生日距离今天多少天
  2. 随机抽奖:创建lottery.py

    • 导入random模块
    • 定义参与者列表:["小明", "小红", "小刚", "小丽", "小华"]
    • 随机抽取3名幸运观众
  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. 必做:完成所有课堂练习(练习1-7)
  2. 必做:完成一个最终挑战项目(A/B/C任选其一)
  3. 选做:尝试组合多个知识点,创建自己的小工具

常见问题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的学习!记得完成作业,明天见!