第一章:Python基础入门

1.1 认识Python

1.1.1 Python简介

  • Python的历史与发展

    Python由荷兰人Guido van Rossum于1989年圣诞节期间创建,并于1991年首次发布。Python的名字来源于Guido喜欢的英国喜剧团体Monty Python,而不是蟒蛇。经过30多年的发展,Python已成为全球最流行的编程语言之一。

  • Python的特点与优势

    Python最大的特点是简洁易读的语法和强大的表达能力。就像我们日常使用的自然语言一样,Python代码读起来几乎像英语句子,这使得学习曲线非常平缓。

    # 其他语言可能需要很多行代码来表达的逻辑,Python只需要一行
    # 例如,打印1到10中的偶数:
    print([i for i in range(1, 11) if i % 2 == 0])
    # 输出: [2, 4, 6, 8, 10]
    
  • Python的应用领域

    Python就像一把瑞士军刀,几乎可以用于任何领域:

    • 网站开发(Django, Flask)
    • 数据分析与可视化(Pandas, Matplotlib)
    • 人工智能与机器学习(TensorFlow, PyTorch)
    • 自动化脚本(日常工作自动化)
    • 游戏开发(Pygame)
    • 科学计算(NumPy, SciPy)
  • Python 2与Python 3的区别

    Python 2已于2020年1月1日停止支持。Python 3修复了许多设计缺陷,但不完全向后兼容。主要区别包括:

    • 打印语句:Python 2使用print "Hello",Python 3使用print("Hello")
    • 整数除法:Python 2中3/2=1,Python 3中3/2=1.5
    • 字符串处理:Python 3默认使用Unicode编码

    本教程将完全基于Python 3进行讲解。

1.1.2 为什么选择Python作为入门语言

  • 简洁易读的语法

    想象你在学习一门外语。有些语言语法复杂,有很多例外规则,而Python就像是一门语法简单、规则统一的语言。Python使用缩进来组织代码块,没有复杂的括号和分号,代码看起来整洁有序。

    # 一个简单的条件语句示例
    temperature = 30
    if temperature > 25:
        print("今天天气真热!")
    else:
        print("今天天气不错!")
    
  • 丰富的库和框架

    Python就像是带有无数插件的工具箱。无论你想做什么,很可能已经有现成的库可以帮助你。就像你不需要自己制作每一个厨房工具就能做出美食一样,Python的库让你能够站在巨人的肩膀上开发应用。

  • 广泛的应用场景

    从简单的计算器到复杂的人工智能系统,Python都能胜任。这就像学习一种既能用于日常对话,又能用于学术研究的语言,投资回报率极高。

  • 活跃的社区支持

    当你遇到问题时,全球数百万Python开发者组成的社区可以提供帮助。这就像有一个24小时在线的巨大学习小组,随时可以解答你的疑问。

1.2 搭建Python开发环境

1.2.1 安装Python

  • Windows系统安装Python

    1. 访问Python官网(https://www.python.org/downloads/)下载最新版Python安装包
    2. 运行安装程序,勾选"Add Python to PATH"选项
    3. 点击"Install Now"进行安装
    4. 安装完成后,打开命令提示符(CMD),输入python --version验证安装
    C:\Users\用户名> python --version
    Python 3.10.0
    
  • macOS系统安装Python

    macOS通常预装了Python 2.7,但我们需要安装Python 3:

    1. 推荐使用Homebrew安装:首先安装Homebrew,然后在终端执行:
      brew install python3
      
    2. 或者从Python官网下载macOS安装包并安装
    3. 安装后,在终端输入python3 --version验证安装
  • Linux系统安装Python

    大多数Linux发行版预装了Python。在终端中:

    1. 对于Ubuntu/Debian:
      sudo apt update
      sudo apt install python3 python3-pip
      
    2. 对于Fedora:
      sudo dnf install python3 python3-pip
      
    3. 验证安装:python3 --version
  • 验证安装是否成功

    无论使用哪种操作系统,安装完成后,打开终端或命令提示符,输入:

    python --version  # 或 python3 --version
    

    如果显示Python版本号(如Python 3.10.0),则表示安装成功。

1.2.2 选择并安装IDE/编辑器

  • IDLE(Python自带)

    IDLE是Python自带的简单集成开发环境,适合初学者:

    • 优点:无需额外安装,界面简单,包含交互式解释器
    • 缺点:功能有限,不适合大型项目
    • 使用方法:在命令行输入idle或从开始菜单启动
  • PyCharm(专业IDE)

    PyCharm是功能最全面的Python IDE,有社区版(免费)和专业版:

    1. 从JetBrains官网(https://www.jetbrains.com/pycharm/download/)下载
    2. 运行安装程序,按提示完成安装
    3. 首次启动时,可以选择UI主题和插件

    PyCharm就像一辆全功能的豪华汽车,有自动驾驶辅助(代码补全)、导航系统(跳转到定义)和安全气囊(调试工具)。

  • Visual Studio Code(轻量级编辑器)

    VS Code是一款轻量级但功能强大的编辑器,通过插件支持Python:

    1. 从官网(https://code.visualstudio.com/)下载安装
    2. 安装Python扩展:点击扩展图标,搜索"Python"并安装
    3. 安装Python扩展包:打开终端,运行pip install pylint

    VS Code就像一辆可以根据需要改装的汽车,基础版轻便实用,随着你的需求增加,可以不断添加新功能。

  • Jupyter Notebook(交互式开发)

    Jupyter Notebook特别适合数据分析和学习:

    1. 安装:pip install notebook
    2. 启动:在命令行输入jupyter notebook
    3. 浏览器会自动打开Notebook界面

    Jupyter Notebook就像是一本可以运行代码的电子笔记本,你可以边写笔记边执行代码,非常适合学习和实验。

1.2.3 第一个Python程序

  • 使用交互式解释器

    Python的交互式解释器让你可以立即看到代码执行结果,非常适合学习和测试:

    1. 打开命令行或终端
    2. 输入pythonpython3启动解释器
    3. 看到>>>提示符后,输入Python代码并按回车执行
    >>> print("你好,Python世界!")
    你好,Python世界!
    >>> 2 + 3
    5
    >>> name = "小明"
    >>> print(f"你好,{name}!")
    你好,小明!
    >>> exit()  # 退出解释器
    
  • 创建并运行Python脚本文件

    对于需要保存和重复执行的代码,我们使用.py文件:

    1. 打开文本编辑器或IDE
    2. 创建新文件,输入以下代码:
    # 文件名: hello.py
    # 这是我的第一个Python程序
    
    print("你好,Python世界!")
    
    # 计算并显示1到100的和
    total = sum(range(1, 101))
    print(f"1到100的和是: {total}")
    
    # 获取用户输入
    name = input("请输入你的名字: ")
    print(f"你好,{name}!欢迎学习Python!")
    
    1. 保存为hello.py
    2. 在命令行中,导航到文件所在目录,执行:
      python hello.py  # 或 python3 hello.py
      
  • 理解Python程序的执行过程

    Python程序执行过程可以类比为阅读和执行食谱的过程:

    1. 解析阶段:Python解释器阅读你的代码(食谱),检查语法错误
    2. 编译阶段:将代码转换为字节码(内部表示),类似于理解食谱步骤
    3. 执行阶段:逐行执行字节码,就像按步骤烹饪食物

    与编译型语言不同,Python是解释型语言,代码在运行时才被转换为机器能理解的形式,这就是为什么Python程序可以直接运行而不需要单独的编译步骤。

1.3 Python基本语法

1.3.1 Python代码结构

  • 缩进与代码块

    Python使用缩进来表示代码块,这与使用花括号的语言不同:

    # 使用4个空格作为标准缩进
    if temperature > 30:
        print("天气炎热")
        print("记得多喝水")
    else:
        print("天气适宜")
        if is_sunny:
            print("是个出游的好日子")
    

    缩进就像是段落的层级,帮助我们一眼看出代码的结构。错误的缩进会导致语法错误或逻辑错误。

  • 注释的使用(单行注释与多行注释)

    注释是写给人看的,不会被执行:

    # 这是单行注释,用#开头
    
    print("Hello")  # 也可以在代码后添加注释
    
    '''
    这是多行注释
    使用三个单引号或三个双引号
    可以跨越多行
    '''
    
    """
    这也是多行注释
    通常用于函数和类的文档说明
    """
    

    好的注释就像菜谱中的小贴士,帮助理解代码的目的和工作原理。

  • 语句与表达式

    • 表达式:产生一个值,如2 + 2name.upper()
    • 语句:执行一个操作,如赋值语句x = 5、条件语句if-else
    # 表达式示例
    price = 100
    discount = 0.1
    final_price = price * (1 - discount)  # 这里price * (1 - discount)是表达式
    
    # 语句示例
    if final_price > 50:  # 条件语句
        print("价格仍然较高")
    
  • 命名规范与标识符

    标识符是变量、函数、类等的名称,命名规则:

    • 只能包含字母、数字和下划线
    • 不能以数字开头
    • 区分大小写
    • 不能使用Python关键字(如if, for, class等)

    命名约定:

    • 变量和函数名:小写,单词间用下划线连接(snake_case)
    • 类名:首字母大写(PascalCase)
    • 常量:全大写,单词间用下划线连接
    # 良好的命名示例
    user_name = "张三"  # 变量名
    def calculate_total_price():  # 函数名
        pass
    class ShoppingCart:  # 类名
        pass
    MAX_RETRY_COUNT = 3  # 常量
    

    好的命名就像好的标签,一眼就能看出内容,无需额外解释。

1.3.2 变量与赋值

  • 变量的概念

    变量是存储数据的容器,可以类比为贴有标签的盒子:

    # 创建一个名为age的变量,存储数值25
    age = 25
    

    在这个例子中,age是标签(变量名),25是盒子里的内容(值)。

  • 变量命名规则

    好的变量名应该具有描述性,表明它存储的是什么:

    # 不好的命名
    a = 30
    
    # 好的命名
    age = 30
    temperature_celsius = 30
    monthly_salary = 30000
    

    想象你在整理家里的物品,使用"杂物盒"和"冬季衣物盒"哪个更容易找到东西?好的变量名也是如此。

  • 赋值操作

    赋值使用等号=,将右侧的值存储到左侧的变量中:

    # 基本赋值
    name = "小红"
    age = 25
    
    # 变量的值可以更新
    age = 26  # 小红过生日了
    
    # 使用已有变量的值创建新变量
    next_year_age = age + 1
    
  • 多重赋值

    Python允许在一行中给多个变量赋值:

    # 同时给多个变量赋相同的值
    x = y = z = 0  # x, y, z都等于0
    
    # 同时给多个变量赋不同的值
    name, age, city = "小明", 20, "北京"
    
    # 交换两个变量的值(不需要临时变量)
    a, b = 5, 10
    a, b = b, a  # 现在a=10, b=5
    

    这就像同时给多个盒子贴标签和放入物品,既方便又高效。

1.4 Python数据类型基础

1.4.1 数字类型

  • 整数(int)

    整数是没有小数部分的数字,可以是正数、负数或零:

    age = 25  # 正整数
    temperature = -5  # 负整数
    count = 0  # 零
    
    # Python整数没有大小限制
    very_large_number = 10**100  # 10的100次方
    print(very_large_number)
    

    生活中的整数例子:年龄、人数、楼层数。

  • 浮点数(float)

    浮点数是有小数部分的数字:

    height = 1.75  # 米
    weight = 68.5  # 千克
    pi = 3.14159
    
    # 科学计数法
    distance_to_sun = 1.496e11  # 1.496 × 10^11 米
    

    生活中的浮点数例子:身高、体重、温度、价格。

    注意:浮点数计算可能有精度问题:

    print(0.1 + 0.2)  # 输出0.30000000000000004而不是0.3
    
  • 复数(complex)

    复数有实部和虚部,在科学计算和工程中使用:

    c = 3 + 4j  # 3是实部,4是虚部
    print(c.real)  # 输出3.0
    print(c.imag)  # 输出4.0
    
  • 数值运算与内置函数

    Python支持所有基本数学运算:

    # 基本运算
    sum_result = 10 + 5  # 加法: 15
    difference = 10 - 5  # 减法: 5
    product = 10 * 5  # 乘法: 50
    quotient = 10 / 5  # 除法: 2.0 (结果总是浮点数)
    
    # 整数除法和余数
    integer_division = 10 // 3  # 整数除法: 3
    remainder = 10 % 3  # 取余: 1
    
    # 幂运算
    power = 2 ** 3  # 2的3次方: 8
    
    # 常用数学函数
    import math
    
    print(abs(-10))  # 绝对值: 10
    print(round(3.7))  # 四舍五入: 4
    print(math.sqrt(16))  # 平方根: 4.0
    print(math.sin(math.pi/2))  # 正弦函数: 1.0
    

    这些运算就像日常计算器的功能,帮助我们处理各种数值计算。

1.4.2 字符串类型

  • 字符串的创建与表示

    字符串是文本数据,用单引号或双引号括起来:

    # 创建字符串的不同方式
    name = "小明"  # 双引号
    message = '你好,世界'  # 单引号
    
    # 多行字符串使用三引号
    address = """北京市海淀区
    中关村南大街5号
    邮编: 100081"""
    
    # 包含引号的字符串
    quote = "他说:"Python很有趣!""
    # 或者使用不同类型的引号
    quote = '他说:"Python很有趣!"'
    
  • 字符串的基本操作

    字符串支持多种操作,就像处理文本一样:

    # 字符串拼接
    greeting = "你好," + name  # 使用+号连接
    
    # 字符串重复
    stars = "*" * 10  # 输出"**********"
    
    # 获取字符串长度
    print(len(name))  # 输出2
    
    # 字符串索引和切片
    word = "Python"
    print(word[0])    # 'P' (第一个字符)
    print(word[-1])   # 'n' (最后一个字符)
    print(word[1:4])  # 'yth' (切片)
    
  • 字符串常用方法

    Python提供了丰富的字符串方法:

    text = " Python 编程 "
    
    # 去除空白
    print(text.strip())  # "Python 编程"
    
    # 大小写转换
    print(text.upper())  # " PYTHON 编程 "
    print(text.lower())  # " python 编程 "
    
    # 查找和替换
    print(text.find("编程"))  # 返回位置8
    print(text.replace("Python", "Java"))  # " Java 编程 "
    
    # 分割字符串
    fruits = "苹果,香蕉,橙子"
    print(fruits.split(","))  # ['苹果', '香蕉', '橙子']
    
  • 字符串格式化

    有多种方式格式化字符串:

    # 旧式格式化
    print("我叫%s,今年%d岁" % (name, age))
    
    # str.format()方法
    print("我叫{},今年{}岁".format(name, age))
    
    # f-strings (Python 3.6+)
    print(f"我叫{name},今年{age}岁")
    

1.4.3 列表类型

  • 列表的创建与基本操作

    列表是有序的可变序列,可以存储不同类型的数据:

    # 创建列表
    shopping_list = ["苹果", "牛奶", "面包"]
    numbers = [1, 2, 3, 4, 5]
    mixed = [1, "文本", 3.14, True]
    
    # 访问元素
    print(shopping_list[0])  # "苹果"
    print(numbers[-1])      # 5 (最后一个元素)
    
    # 修改元素
    shopping_list[1] = "酸奶"
    
    # 添加元素
    shopping_list.append("鸡蛋")
    shopping_list.insert(1, "香蕉")
    
    # 删除元素
    del shopping_list[0]  # 删除第一个元素
    shopping_list.remove("面包")  # 删除指定值
    popped = shopping_list.pop()  # 删除并返回最后一个元素
    
    # 列表长度
    print(len(shopping_list))  # 当前列表长度
    
  • 列表常用方法

    numbers = [3, 1, 4, 1, 5, 9, 2]
    
    # 排序
    numbers.sort()  # 原地排序 [1, 1, 2, 3, 4, 5, 9]
    sorted_numbers = sorted(numbers)  # 返回新列表
    
    # 反转
    numbers.reverse()  # [9, 5, 4, 3, 2, 1, 1]
    
    # 查找
    print(numbers.index(5))  # 返回位置1
    print(3 in numbers)      # True
    
    # 统计
    print(numbers.count(1))  # 2
    
    # 列表拼接
    new_list = numbers + [6, 7, 8]
    
  • 列表切片

    切片操作可以获取子列表:

    numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    print(numbers[2:5])   # [2, 3, 4]
    print(numbers[:3])    # [0, 1, 2] (前三个)
    print(numbers[6:])    # [6, 7, 8, 9] (第六个到最后)
    print(numbers[::2])   # [0, 2, 4, 6, 8] (每隔一个)
    print(numbers[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (反转)
    

1.4.4 元组类型

  • 元组的特点与创建

    元组是不可变序列,适合存储不应修改的数据:

    # 创建元组
    coordinates = (39.9, 116.4)  # 北京经纬度
    colors = ("红", "绿", "蓝")  # RGB颜色
    single = (42,)  # 单元素元组必须有逗号
    
    # 访问元素
    print(coordinates[0])  # 39.9
    
    # 元组解包
    lat, lon = coordinates
    print(f"纬度: {lat}, 经度: {lon}")
    
    # 元组不可修改
    # coordinates[0] = 40.0  # 会报错
    
  • 元组的应用场景

    元组常用于:

    • 函数返回多个值
    • 字典的键(因为不可变)
    • 保护数据不被修改
    # 函数返回多个值
    def get_user_info():
        return "张三", 30, "北京"
    
    name, age, city = get_user_info()
    

1.4.5 字典类型

  • 字典的创建与基本操作

    字典是键值对的集合,适合存储关联数据:

    # 创建字典
    student = {
        "name": "李四",
        "age": 20,
        "major": "计算机科学"
    }
    
    # 访问元素
    print(student["name"])  # "李四"
    print(student.get("age"))  # 20
    
    # 添加/修改元素
    student["grade"] = "A"
    student["age"] = 21
    
    # 删除元素
    del student["major"]
    popped = student.pop("grade")
    
    # 检查键是否存在
    print("name" in student)  # True
    
    # 获取所有键/值
    print(student.keys())   # ['name', 'age']
    print(student.values()) # ['李四', 21]
    
  • 字典的遍历

    # 遍历键
    for key in student:
        print(key)
    
    # 遍历键值对
    for key, value in student.items():
        print(f"{key}: {value}")
    

1.4.6 练习题

  1. 字符串练习
    编写代码将"Python编程很有趣"中的"编程"替换为"学习",并统计字母"n"出现的次数。

    text = "Python编程很有趣"
    # 你的代码
    
  2. 列表练习
    创建一个购物清单列表,包含至少5种商品,然后:

    • 删除第三件商品
    • 在开头添加一件商品
    • 将列表按字母顺序排序
  3. 元组练习
    创建一个包含3个城市名称的元组,然后:

    • 打印第二个城市
    • 尝试修改第一个城市(观察会发生什么)
    • 将元组转换为列表
  4. 字典练习
    创建一个个人信息字典,包含姓名、年龄和爱好,然后:

    • 添加一个新的键值对(如:城市)
    • 删除年龄
    • 遍历并打印所有信息
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐