欢迎光临
我们一直在努力

《Python从入门到精通:全栈开发与人工智能实战》

《Python从入门到精通:全栈开发与人工智能实战》

完整版:完整版https://rshrt.com/PythonAndAI

可能需要刷新几次网页,然后验证码要等网页加载完后在点击进行验证,其中可能会跳转到其他网页,如果跳转,直接返回网页即可

可能加载有一点慢,加油坚持就是胜利,坚持下去,你将成为下一代python精通的人成为一名合格的程序员!!!

前言

在数字化浪潮席卷全球的今天,编程已成为21世纪最重要的技能之一。而Python,以其优雅简洁的语法、强大的功能库和广泛的应用领域,成为了无数开发者的首选语言。无论你是编程新手,希望打开编程世界的大门;还是有一定经验的开发者,渴望提升技能水平;或是想要转型人工智能、数据分析等热门领域的技术人员,本书都将是你理想的伴侣。

本书的编写遵循"循序渐进、理论与实践并重"的原则,从最基本的Python语法开始,逐步深入到高级编程技巧,最后涵盖Python在数据科学、人工智能、Web开发等热门领域的实战应用。全书共分为八个部分,二十八个章节,每个章节都包含丰富的代码示例、实际项目和练习题,确保读者能够真正掌握所学知识。

本书特色

  • 系统性:涵盖Python从基础到高级的全部核心知识

  • 实战性:每章都配有实际项目案例,理论与实践结合

  • 前沿性:包含人工智能、大数据等前沿技术应用

  • 专业性:深入讲解Python高级特性和最佳实践

  • 全面性:覆盖Web开发、数据分析、机器学习等多个领域

  • 目标读者

    • 编程零基础的初学者

    • 有一定编程经验想系统学习Python的开发者

    • 希望转型人工智能、数据分析的技术人员

    • 高校计算机相关专业学生

    • 希望提升编程能力的科研工作者

    学习建议

  • 动手实践:编程是实践性技能,务必动手编写每一行代码

  • 循序渐进:按照章节顺序学习,打好基础再进入高级内容

  • 反复练习:完成每章后的练习题,巩固所学知识

  • 项目驱动:通过实际项目加深理解,积累开发经验

  • 持续学习:编程技术日新月异,养成持续学习的习惯


  • 第一部分:Python编程基础(共5章,约12万字)

    第1章:Python概述与环境搭建(约2.5万字)

    1.1 Python的历史与发展

    Python诞生于1989年圣诞节期间,由荷兰程序员吉多·范罗苏姆(Guido van Rossum)创造。当时,吉多在荷兰国家数学和计算机科学研究所工作,为了打发圣诞节的无聊时光,决定开发一个新的脚本解释程序。Python这个名字来源于吉多喜欢的电视剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus),与蟒蛇无关。

    Python的重要发展里程碑:

    • 1991年:Python 0.9.0发布,包含类、异常处理、函数等基础特性

    • 2000年:Python 2.0发布,加入垃圾回收机制、Unicode支持

    • 2008年:Python 3.0发布,解决Python 2.x中的设计缺陷

    • 2020年:Python 2.x正式停止维护

    Python的设计哲学: Python的设计强调代码的可读性和简洁性。在Python交互解释器中输入import this可以查看Python之禅(The Zen of Python):

    python

    # Python之禅的部分内容
    """
    优美胜于丑陋
    明了胜于晦涩
    简洁胜于复杂
    扁平胜于嵌套
    间隔胜于紧凑
    可读性很重要

    """

    1.2 Python的特点与优势

    1.2.1 简洁易读的语法 Python采用清晰的缩进来表示代码块,强制养成良好的编程习惯。与其他语言相比,Python可以用更少的代码完成相同的功能。

    对比示例:

    python

    # Python实现Hello World
    print("Hello, World!")

    # Java实现Hello World
    public class HelloWorld {
    public static void main(String[] args) {
    System.out.println("Hello, World!");
    }
    }

    # C++实现Hello World
    #include <iostream>
    using namespace std;
    int main() {
    cout << "Hello, World!" << endl;
    return 0;
    }

    1.2.2 丰富的标准库和第三方库 Python拥有庞大的生态系统,包括:

    • 标准库:内置了数百个模块,涵盖文件处理、网络通信、数据库访问等

    • 第三方库:PyPI(Python Package Index)上有超过30万个包

    • 框架:Django、Flask(Web开发)、TensorFlow、PyTorch(机器学习)等

    1.2.3 跨平台特性 Python可以在Windows、Linux、macOS等多个操作系统上运行,真正实现"一次编写,到处运行"。

    1.2.4 强大的社区支持 Python拥有活跃的全球社区,遇到问题可以轻松找到解决方案和帮助。

    1.3 Python应用领域
  • Web开发:Django、Flask、FastAPI等框架

  • 数据科学:NumPy、Pandas、Matplotlib等库

  • 人工智能与机器学习:TensorFlow、PyTorch、Scikit-learn

  • 自动化运维:Ansible、SaltStack等工具

  • 网络爬虫:Scrapy、BeautifulSoup等库

  • 桌面应用:PyQt、Tkinter等GUI库

  • 游戏开发:Pygame等游戏引擎

  • 科学计算:SciPy、SymPy等数学库

  • 1.4 Python环境安装与配置

    1.4.1 Windows系统安装

  • 访问Python官网(https://www.python.org)

  • 下载最新版本的Python安装程序

  • 运行安装程序,务必勾选"Add Python to PATH"

  • 选择自定义安装或使用默认设置

  • 完成安装后验证

  • 验证安装:

    bash

    # 打开命令提示符(CMD)或PowerShell
    python –version
    # 应显示类似:Python 3.x.x

    1.4.2 macOS系统安装

    bash

    # 方法1:使用Homebrew安装
    brew install python3

    # 方法2:官网下载安装包
    # 访问Python官网下载macOS安装包

    1.4.3 Linux系统安装

    bash

    # Ubuntu/Debian系统
    sudo apt update
    sudo apt install python3 python3-pip

    # CentOS/RHEL系统
    sudo yum install python3

    1.5 开发工具的选择与配置

    1.5.1 集成开发环境(IDE)

  • PyCharm:功能强大的专业Python IDE

    • 专业版(收费)和社区版(免费)

    • 智能代码补全、调试、测试、版本控制集成

  • Visual Studio Code:轻量级但功能强大的编辑器

    • 免费开源,扩展性强

    • 安装Python扩展后功能完善

  • Jupyter Notebook:交互式编程环境

    • 适合数据科学和教学

    • 支持代码、文本、可视化混合

  • 1.5.2 代码编辑器的配置

    VS Code Python开发环境配置:

    json

    // settings.json配置示例
    {
    "python.pythonPath": "python3",
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.formatting.provider": "black",
    "editor.formatOnSave": true,
    "python.autoComplete.addBrackets": true
    }

    1.5.3 虚拟环境管理

    为什么需要虚拟环境?

    • 隔离不同项目的依赖

    • 避免包版本冲突

    • 便于项目部署和共享

    创建虚拟环境:

    bash

    # 使用venv创建虚拟环境
    python -m venv myenv

    # 激活虚拟环境
    # Windows:
    myenv\\Scripts\\activate
    # macOS/Linux:
    source myenv/bin/activate

    # 安装包到虚拟环境
    pip install package_name

    # 导出依赖
    pip freeze > requirements.txt

    # 安装依赖
    pip install -r requirements.txt

    1.6 第一个Python程序

    1.6.1 使用Python交互模式

    python

    # 启动Python交互模式
    python
    # 或 python3

    # 在交互模式中执行
    >>> print("Hello, Python!")
    Hello, Python!
    >>> 2 + 3 * 4
    14
    >>> exit() # 退出交互模式

    1.6.2 编写Python脚本文件

    hello.py:

    python

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-

    """
    第一个Python程序
    作者:你的名字
    日期:2023年
    """

    def main():
    """主函数"""
    print("=" * 50)
    print("欢迎学习Python编程!")
    print("=" * 50)

    # 获取用户输入
    name = input("请输入你的名字:")

    # 格式化输出
    print(f"你好,{name}!")
    print(f"名字长度:{len(name)}")

    # 简单的计算
    num1 = float(input("请输入第一个数字:"))
    num2 = float(input("请输入第二个数字:"))

    print(f"{num1} + {num2} = {num1 + num2}")
    print(f"{num1} – {num2} = {num1 – num2}")
    print(f"{num1} × {num2} = {num1 * num2}")

    if num2 != 0:
    print(f"{num1} ÷ {num2} = {num1 / num2}")
    else:
    print("除数不能为0!")

    # Python程序入口
    if __name__ == "__main__":
    main()

    运行脚本:

    bash

    # 方法1:使用python命令
    python hello.py

    # 方法2:给文件添加执行权限(Linux/macOS)
    chmod +x hello.py
    ./hello.py

    1.7 Python编码规范

    1.7.1 PEP 8规范 PEP 8是Python官方的编码风格指南,主要内容包括:

  • 缩进:使用4个空格(不要使用Tab)

  • 行长:每行不超过79个字符

  • 空行:

    • 函数和类定义之间用两个空行

    • 类内方法定义之间用一个空行

  • 导入:

    python

    # 正确示例
    import os
    import sys
    from subprocess import Popen, PIPE

    # 导入顺序
    # 1. 标准库
    # 2. 第三方库
    # 3. 本地模块

  • 1.7.2 命名约定

    python

    # 变量和函数:小写字母,单词间用下划线
    variable_name = "value"
    def function_name():
    pass

    # 类名:驼峰命名法
    class ClassName:
    pass

    # 常量:全大写字母
    CONSTANT_NAME = 100

    1.8 调试技巧

    1.8.1 使用print调试

    python

    def calculate_average(numbers):
    print(f"[DEBUG] 输入列表:{numbers}") # 调试输出
    print(f"[DEBUG] 列表长度:{len(numbers)}")

    if not numbers:
    print("[DEBUG] 列表为空")
    return 0

    total = sum(numbers)
    print(f"[DEBUG] 总和:{total}")

    average = total / len(numbers)
    print(f"[DEBUG] 平均值:{average}")

    return average

    1.8.2 使用pdb调试器

    python

    import pdb

    def divide_numbers(a, b):
    pdb.set_trace() # 设置断点
    result = a / b
    return result

    # pdb常用命令:
    # n(ext) – 执行下一行
    # s(tep) – 进入函数
    # c(ontinue) – 继续执行
    # l(ist) – 显示当前代码
    # p – 打印变量值
    # q(uit) – 退出调试

    1.9 本章小结

    本章介绍了Python的历史、特点、应用领域以及开发环境的搭建。通过本章的学习,你应该已经:

  • 了解Python的发展历程和设计哲学

  • 理解Python的主要优势和应用场景

  • 成功安装Python并配置开发环境

  • 能够编写和运行简单的Python程序

  • 了解Python编码规范和基本调试方法

  • 实践项目:开发环境配置与验证

    项目要求:

  • 安装Python 3.x最新版本

  • 配置至少一种IDE或编辑器

  • 创建虚拟环境并安装常用包

  • 编写一个完整的Python程序,包含:

    • 用户输入输出

    • 基本计算功能

    • 错误处理

    • 注释和文档字符串

  • 扩展阅读:

  • 《Python之禅》全文理解

  • PEP 8完整规范文档

  • 不同IDE的详细配置教程

  • Python社区资源和学习路径


  • 第2章:Python基础语法(约2.5万字)

    2.1 变量与数据类型

    2.1.1 变量定义与命名规则

    python

    # 变量定义
    name = "张三" # 字符串类型
    age = 25 # 整数类型
    height = 1.75 # 浮点数类型
    is_student = True # 布尔类型

    # Python是动态类型语言,变量类型可以改变
    x = 10 # x是整数
    x = "hello" # x现在是字符串

    # 多重赋值
    a, b, c = 1, 2, 3
    x = y = z = 0

    # 变量交换
    a, b = b, a

    2.1.2 基本数据类型

    数字类型:

    python

    # 整数(int)
    num1 = 10
    num2 = -5
    num3 = 0
    large_num = 1_000_000 # Python 3.6+支持使用下划线提高可读性

    # 浮点数(float)
    float1 = 3.14
    float2 = 2.0
    float3 = 4.5e-3 # 科学计数法:0.0045

    # 复数(complex)
    complex1 = 3 + 4j
    complex2 = complex(2, -3)

    # 布尔值(bool)
    is_true = True
    is_false = False

    # 类型转换
    int_num = int(3.14) # 3
    float_num = float(10) # 10.0
    bool_val = bool(0) # False
    str_num = str(123) # "123"

    2.1.3 类型检查与判断

    python

    # 使用type()函数
    print(type(10)) # <class 'int'>
    print(type(3.14)) # <class 'float'>
    print(type("hello")) # <class 'str'>
    print(type(True)) # <class 'bool'>

    # 使用isinstance()函数
    print(isinstance(10, int)) # True
    print(isinstance(3.14, (int, float))) # True,可以是多个类型之一

    # 类型判断在实际编程中的应用
    def process_value(value):
    """处理不同类型的值"""
    if isinstance(value, int):
    return value * 2
    elif isinstance(value, float):
    return value * 1.5
    elif isinstance(value, str):
    return value.upper()
    else:
    return str(value)

    2.2 运算符详解

    2.2.1 算术运算符

    python

    # 基本算术运算
    a = 10
    b = 3

    print(a + b) # 13,加法
    print(a – b) # 7,减法
    print(a * b) # 30,乘法
    print(a / b) # 3.3333333333333335,除法(浮点数结果)
    print(a // b) # 3,整除
    print(a % b) # 1,取模(求余数)
    print(a ** b) # 1000,幂运算

    # 特殊运算符
    print(divmod(a, b)) # (3, 1),同时返回商和余数

    2.2.2 比较运算符

    python

    a = 10
    b = 20

    print(a == b) # False,等于
    print(a != b) # True,不等于
    print(a > b) # False,大于
    print(a < b) # True,小于
    print(a >= b) # False,大于等于
    print(a <= b) # True,小于等于

    # 字符串比较(按字典序)
    print("apple" < "banana") # True
    print("cat" > "dog") # False

    2.2.3 逻辑运算符

    python

    # and(与):所有条件都为True时返回True
    print(True and True) # True
    print(True and False) # False
    print(5 > 3 and 2 < 4) # True

    # or(或):至少一个条件为True时返回True
    print(True or False) # True
    print(False or False) # False

    # not(非):取反
    print(not True) # False
    print(not False) # True

    # 短路求值
    def expensive_operation():
    print("执行耗时操作…")
    return True

    # 如果第一个条件为False,第二个条件不会执行
    if False and expensive_operation():
    print("不会执行到这里")

    2.2.4 赋值运算符

    python

    x = 10

    # 复合赋值运算符
    x += 5 # x = x + 5
    x -= 3 # x = x – 3
    x *= 2 # x = x * 2
    x /= 4 # x = x / 4
    x //= 2 # x = x // 2
    x %= 3 # x = x % 3
    x **= 2 # x = x ** 2

    # 海象运算符(Python 3.8+)
    # 在表达式内部进行赋值
    if (n := len([1, 2, 3])) > 2:
    print(f"列表长度{n}大于2")

    2.2.5 成员运算符

    python

    # in:如果在序列中找到值返回True
    # not in:如果在序列中没有找到值返回True

    numbers = [1, 2, 3, 4, 5]
    print(3 in numbers) # True
    print(10 in numbers) # False
    print(3 not in numbers) # False
    print(10 not in numbers) # True

    text = "Hello, World!"
    print("World" in text) # True
    print("Python" in text) # False

    2.2.6 身份运算符

    python

    # is:判断两个对象是否是同一个对象(内存地址相同)
    # is not:判断两个对象是否不是同一个对象

    a = [1, 2, 3]
    b = a # b和a指向同一个列表对象
    c = [1, 2, 3] # c是一个新的列表对象

    print(a is b) # True,同一个对象
    print(a is c) # False,不同对象
    print(a == c) # True,值相同但对象不同

    # None的比较应该使用is而不是==
    x = None
    print(x is None) # True
    print(x == None) # True(但不推荐)

    2.3 输入与输出

    2.3.1 基本输出

    python

    # print()函数的基本用法
    print("Hello, World!") # 输出字符串
    print(100) # 输出数字
    print(3.14) # 输出浮点数

    # 多个参数输出
    name = "Alice"
    age = 25
    print("姓名:", name, "年龄:", age) # 输出:姓名: Alice 年龄: 25

    # sep参数:指定分隔符
    print("2023", "08", "15", sep="-") # 2023-08-15

    # end参数:指定结束符
    print("Hello", end=" ")
    print("World") # Hello World(同一行)

    2.3.2 格式化输出

    python

    name = "张三"
    age = 25
    score = 89.5

    # 1. %格式化(传统方式)
    print("姓名:%s,年龄:%d,分数:%.2f" % (name, age, score))

    # 2. str.format()方法(Python 2.6+)
    print("姓名:{},年龄:{},分数:{:.2f}".format(name, age, score))
    print("姓名:{0},年龄:{1},分数:{2:.2f}".format(name, age, score))
    print("姓名:{name},年龄:{age},分数:{score:.2f}".format(
    name=name, age=age, score=score))

    # 3. f-string(Python 3.6+,推荐使用)
    print(f"姓名:{name},年龄:{age},分数:{score:.2f}")
    print(f"明年年龄:{age + 1}")
    print(f"姓名长度:{len(name)}")

    # f-string高级用法
    import math
    print(f"π的值:{math.pi:.4f}") # 保留4位小数
    print(f"十六进制:{255:#x}") # 0xff
    print(f"科学计数法:{1000000:.2e}") # 1.00e+06

    2.3.3 基本输入

    python

    # input()函数:获取用户输入(返回字符串)
    name = input("请输入你的名字:")
    print(f"你好,{name}!")

    # 数值输入需要类型转换
    age_str = input("请输入你的年龄:")
    age = int(age_str) # 转换为整数
    print(f"明年你将{age + 1}岁")

    # 处理输入错误
    while True:
    try:
    num = float(input("请输入一个数字:"))
    print(f"你输入的数字是:{num}")
    break
    except ValueError:
    print("输入错误,请重新输入一个有效的数字!")

    2.4 流程控制

    2.4.1 条件判断(if语句)

    python

    # 基本if语句
    age = 18

    if age >= 18:
    print("你已经成年了")
    print("可以考驾照了")

    # if-else语句
    score = 85
    if score >= 60:
    print("及格")
    else:
    print("不及格")

    # if-elif-else语句
    score = 85
    if score >= 90:
    grade = "A"
    print("优秀")
    elif score >= 80:
    grade = "B"
    print("良好")
    elif score >= 70:
    grade = "C"
    print("中等")
    elif score >= 60:
    grade = "D"
    print("及格")
    else:
    grade = "F"
    print("不及格")

    print(f"等级:{grade}")

    # 嵌套if语句
    age = 20
    has_license = True

    if age >= 18:
    print("年龄符合要求")
    if has_license:
    print("可以租车")
    else:
    print("需要先考取驾照")
    else:
    print("年龄不符合要求")

    2.4.2 循环结构

    while循环:

    python

    # 基本while循环
    count = 0
    while count < 5:
    print(f"计数:{count}")
    count += 1

    # while-else结构
    count = 0
    while count < 3:
    print(f"count = {count}")
    count += 1
    else:
    print("循环正常结束")

    # 无限循环与break
    while True:
    user_input = input("输入'quit'退出:")
    if user_input == 'quit':
    print("程序结束")
    break # 跳出循环
    print(f"你输入了:{user_input}")

    # continue语句
    num = 0
    while num < 10:
    num += 1
    if num % 2 == 0:
    continue # 跳过偶数
    print(f"奇数:{num}")

    for循环:

    python

    # 遍历列表
    fruits = ["苹果", "香蕉", "橙子", "葡萄"]
    for fruit in fruits:
    print(f"我喜欢吃{fruit}")

    # 遍历字符串
    text = "Python"
    for char in text:
    print(char)

    # range()函数
    for i in range(5): # 0, 1, 2, 3, 4
    print(i)

    for i in range(2, 6): # 2, 3, 4, 5
    print(i)

    for i in range(0, 10, 2): # 0, 2, 4, 6, 8
    print(i)

    # 反向遍历
    for i in range(5, 0, -1): # 5, 4, 3, 2, 1
    print(i)

    # enumerate()函数:同时获取索引和值
    fruits = ["苹果", "香蕉", "橙子"]
    for index, fruit in enumerate(fruits):
    print(f"索引{index}: {fruit}")

    # zip()函数:同时遍历多个序列
    names = ["Alice", "Bob", "Charlie"]
    scores = [85, 92, 78]
    for name, score in zip(names, scores):
    print(f"{name}的分数是{score}")

    # for-else结构
    for i in range(5):
    print(i)
    if i == 3:
    break
    else:
    print("循环正常结束") # 如果循环被break中断,else不会执行

    2.5 项目实战:学生成绩管理系统(基础版)

    项目需求:

  • 能够录入学生信息(姓名、学号)

  • 能够录入多门课程成绩

  • 计算每个学生的总分和平均分

  • 根据平均分评定等级

  • 显示所有学生信息

  • 查找特定学生信息

  • 代码实现:

    python

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-

    """
    学生成绩管理系统(基础版)
    作者:Python学习者
    """

    class Student:
    """学生类"""

    def __init__(self, name, student_id):
    """初始化学生信息"""
    self.name = name
    self.student_id = student_id
    self.scores = {} # 课程名: 分数
    self.total_score = 0
    self.average_score = 0
    self.grade = ""

    def add_score(self, course, score):
    """添加课程成绩"""
    if course in self.scores:
    print(f"警告:{course}成绩已存在,将被覆盖")
    self.scores[course] = score
    self._calculate_stats()

    def _calculate_stats(self):
    """计算统计信息"""
    if self.scores:
    self.total_score = sum(self.scores.values())
    self.average_score = self.total_score / len(self.scores)
    self._determine_grade()

    def _determine_grade(self):
    """评定等级"""
    if self.average_score >= 90:
    self.grade = "A"
    elif self.average_score >= 80:
    self.grade = "B"
    elif self.average_score >= 70:
    self.grade = "C"
    elif self.average_score >= 60:
    self.grade = "D"
    else:
    self.grade = "F"

    def display_info(self):
    """显示学生信息"""
    print("=" * 50)
    print(f"姓名:{self.name}")
    print(f"学号:{self.student_id}")
    print("成绩详情:")
    for course, score in self.scores.items():
    print(f" {course}: {score}")
    print(f"总分:{self.total_score:.1f}")
    print(f"平均分:{self.average_score:.1f}")
    print(f"等级:{self.grade}")
    print("=" * 50)

    class GradeManagementSystem:
    """成绩管理系统"""

    def __init__(self):
    """初始化系统"""
    self.students = {} # 学号: Student对象

    def add_student(self):
    """添加学生"""
    print("\\n— 添加学生 —")
    name = input("请输入学生姓名:")
    student_id = input("请输入学号:")

    if student_id in self.students:
    print("错误:该学号已存在!")
    return

    student = Student(name, student_id)
    self.students[student_id] = student
    print(f"学生{name}添加成功!")

    def add_score_for_student(self):
    """为学生添加成绩"""
    print("\\n— 添加成绩 —")
    student_id = input("请输入学号:")

    if student_id not in self.students:
    print("错误:学生不存在!")
    return

    student = self.students[student_id]
    course = input("请输入课程名:")

    while True:
    try:
    score = float(input("请输入成绩(0-100):"))
    if 0 <= score <= 100:
    break
    else:
    print("成绩必须在0-100之间!")
    except ValueError:
    print("请输入有效的数字!")

    student.add_score(course, score)
    print(f"{course}成绩添加成功!")

    def display_all_students(self):
    """显示所有学生"""
    print("\\n— 所有学生信息 —")
    if not self.students:
    print("暂无学生信息")
    return

    for student_id, student in self.students.items():
    student.display_info()

    def search_student(self):
    """查找学生"""
    print("\\n— 查找学生 —")
    search_type = input("按(1)学号或(2)姓名查找:")

    if search_type == "1":
    student_id = input("请输入学号:")
    if student_id in self.students:
    self.students[student_id].display_info()
    else:
    print("未找到该学生")
    elif search_type == "2":
    name = input("请输入姓名:")
    found = False
    for student in self.students.values():
    if student.name == name:
    student.display_info()
    found = True
    if not found:
    print("未找到该学生")
    else:
    print("无效的选择!")

    def show_statistics(self):
    """显示统计信息"""
    print("\\n— 统计信息 —")
    if not self.students:
    print("暂无数据")
    return

    total_students = len(self.students)
    total_scores = []

    for student in self.students.values():
    if student.scores:
    total_scores.append(student.average_score)

    if total_scores:
    avg_all = sum(total_scores) / len(total_scores)
    max_score = max(total_scores)
    min_score = min(total_scores)

    print(f"学生总数:{total_students}")
    print(f"全校平均分:{avg_all:.2f}")
    print(f"最高平均分:{max_score:.2f}")
    print(f"最低平均分:{min_score:.2f}")

    # 等级分布
    grades = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'F': 0}
    for student in self.students.values():
    if student.grade:
    grades[student.grade] += 1

    print("\\n等级分布:")
    for grade, count in grades.items():
    percentage = (count / total_students * 100) if total_students > 0 else 0
    print(f" {grade}级:{count}人 ({percentage:.1f}%)")

    def run(self):
    """运行系统"""
    while True:
    print("\\n=== 学生成绩管理系统 ===")
    print("1. 添加学生")
    print("2. 添加成绩")
    print("3. 查看所有学生")
    print("4. 查找学生")
    print("5. 查看统计信息")
    print("6. 退出系统")

    choice = input("请选择操作(1-6):")

    if choice == "1":
    self.add_student()
    elif choice == "2":
    self.add_score_for_student()
    elif choice == "3":
    self.display_all_students()
    elif choice == "4":
    self.search_student()
    elif choice == "5":
    self.show_statistics()
    elif choice == "6":
    print("感谢使用学生成绩管理系统!")
    break
    else:
    print("无效的选择,请重新输入!")

    # 程序入口
    if __name__ == "__main__":
    system = GradeManagementSystem()
    system.run()

    2.6 本章小结与练习

    本章重点回顾:

  • Python变量和基本数据类型

  • 各种运算符的使用

  • 输入输出的多种方式

  • 流程控制结构(条件判断和循环)

  • 错误处理的基本方法

  • 练习题:

    基础题:

  • 编写一个程序,计算1到100之间所有偶数的和

  • 实现一个猜数字游戏,随机生成1-100之间的数字,用户有10次猜测机会

  • 编写一个程序,判断一个字符串是否是回文(正反读都一样)

  • 进阶题: 4. 扩展学生成绩管理系统,添加以下功能:

    • 删除学生功能

    • 修改学生成绩功能

    • 按平均分排序功能

    • 将数据保存到文件

  • 实现一个简单的计算器,支持加减乘除和括号运算

  • 编写一个程序,统计一篇英文文章中每个单词出现的次数

  • 挑战题: 7. 实现一个简单的银行账户管理系统,包含:

    • 开户、销户

    • 存款、取款、转账

    • 查询余额、交易记录

    • 利息计算


      赞(0)
      未经允许不得转载:171主机测评 » 《Python从入门到精通:全栈开发与人工智能实战》
      分享到: 更多 (0)

      评论 抢沙发

      • 昵称 (必填)
      • 邮箱 (必填)
      • 网址