【Python基础】学习Python的路线,看这一篇就够了,附带源码,书籍分享!!!

Python学习路线

第一阶段:Python基础编程

学习目标

  • 掌握Python的基本语法和核心概念。
  • 能够编写简单的Python程序。

学习内容

  • Python安装与环境配置
  • 变量、数据类型(整型、浮点型、字符串等)
  • 运算符与表达式
  • 控制结构(if-else、for循环、while循环)
  • 函数定义与调用
  • 列表、元组、字典、集合等数据结构

练习:编写一个Python程序,该程序接收一个字符串作为输入,并统计该字符串中每个字符出现的次数(不区分大小写,且只考虑字母和数字字符)。最后,按照字符出现的频率从高到低(如果频率相同,则按字母顺序)排序,并打印结果。

def count_chars(s):  
    # 将字符串转换为小写,并移除非字母数字字符  
    cleaned_s = ''.join(filter(str.isalnum, s.lower()))  
      
    # 使用字典来统计每个字符的出现次数  
    char_count = {}  
    for char in cleaned_s:  
        if char in char_count:  
            char_count[char] += 1  
        else:  
            char_count[char] = 1  
      
    # 根据频率和字母顺序对字符进行排序  
    # 注意:sorted函数默认按照字母顺序排序,但我们可以提供一个自定义的key函数来改变排序方式  
    # 这里我们使用lambda函数来首先按照频率排序(降序),如果频率相同,则按照字母顺序排序  
    sorted_chars = sorted(char_count.items(), key=lambda x: (-x[1], x[0]))  
      
    # 打印结果  
    for char, count in sorted_chars:  
        print(f"{char}: {count}")  
  
# 测试  
input_string = "Hello, World! 123"  
count_chars(input_string)
第二阶段:Python进阶编程

学习目标

  • 深入理解Python的高级特性。
  • 掌握面向对象编程(OOP)的基本概念。
  • 能够处理异常和文件操作。

学习内容

  • 函数高级用法(默认参数、可变参数、关键字参数、Lambda函数)
  • 面向对象编程(类、对象、继承、封装、多态)
  • 异常处理(try-except-else-finally)
  • 文件和目录操作
  • 模块和包的使用

练习:给定一个嵌套的字典列表,其中每个字典可以包含多种类型的数据,包括嵌套的列表和字典。你的任务是编写一个Python程序,以递归方式遍历这个列表,并收集所有类型为int(整数)或float(浮点数)的数据项。最终,将所有收集到的数值数据放入一个列表中并返回。

def extract_numbers(data):  
    """  
    递归地遍历嵌套字典列表,并收集所有整数和浮点数。  
    """  
    numbers = []  
      
    def _extract(item):  
        if isinstance(item, (int, float)):  
            numbers.append(item)  
        elif isinstance(item, list):  
            for subitem in item:  
                _extract(subitem)  
        elif isinstance(item, dict):  
            for value in item.values():  
                _extract(value)  
        # 对于其他类型,我们不做任何操作  
  
    # 处理列表中的每个元素,包括可能是整数的直接元素  
    for item in data:  
        _extract(item)  
      
    return numbers  
  
# 测试  
data = [  
    {"name": "Alice", "age": 30, "scores": [88.5, 92, 95]},  
    {"name": "Bob", "info": {"height": 1.85, "age": 25}, "scores": [90, 95]},  
    {"name": "Charlie", "data": [{"value": 78}, {"value": 82.3}, {"value": 88}]},  
    100  
]  
  
print(extract_numbers(data))
第三阶段:Python应用实践

学习目标

  • 掌握Python在不同领域的应用,如Web开发、数据分析、机器学习等。
  • 能够独立完成小型项目。

学习内容

  • Web开发基础(HTML/CSS/JavaScript、Flask/Django框架)
  • 数据分析与可视化(NumPy、Pandas、Matplotlib、Seaborn)
  • 机器学习基础(scikit-learn库、TensorFlow/PyTorch框架)
  • 网络编程与并发(socket编程、多线程/多进程、asyncio)

练习: 学生成绩管理系统,计算每个学生的平均分(四舍五入到小数点后两位),然后按照平均分从高到低(如果平均分相同,则按姓名字母顺序)排序学生列表,并打印出排序后的结果。

def calculate_average(scores_str):  
    """计算平均分,输入为分数字符串,用逗号分隔,返回平均分(保留两位小数)"""  
    scores = list(map(float, scores_str.split(',')))  
    return round(sum(scores) / len(scores), 2)  
  
def read_scores(file_path):  
    """读取文件,返回学生姓名和对应分数的字典"""  
    students = {}  
    with open(file_path, 'r') as file:  
        for line in file:  
            name, scores_str = line.strip().split(' ', 1)  
            students[name] = calculate_average(scores_str)  
    return students  
  
def sort_students_by_average(students):  
    """按平均分(降序),如果平均分相同则按姓名字母顺序排序学生"""  
    sorted_students = sorted(students.items(), key=lambda x: (-x[1], x[0]))  
    return sorted_students  
  
def print_sorted_students(sorted_students):  
    """打印排序后的学生列表"""  
    for name, average in sorted_students:  
        print(f"{name}: {average:.2f}")  
  
# 测试  
file_path = 'student_scores.txt'  
students = read_scores(file_path)  
sorted_students = sort_students_by_average(students)  
print_sorted_students(sorted_students)

最后,如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

 

​最后,如果你也想自学Python,可以关注我。

我还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容: 【点击这里】领取!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。 

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值