本周集中发力Python进阶知识点,从基础语法的深化到实用工具的应用,再到AI能力的简单接入,每一个知识点都让我对Python的实用性和灵活性有了更深刻的认知。本文将梳理本周学习的核心内容——模块与包、集合、类与对象、JSON解析,以及阿里云百炼AI程序导入Python代码的实操过程,适合和我一样处于进阶阶段的学习者参考,也作为自己的学习复盘,巩固所学、查漏补缺。

一、模块与包:Python代码复用的核心技巧

在接触模块与包之前,写Python代码大多是“单文件脚本”,一旦代码量增加,可读性和可复用性就会大打折扣。本周终于搞懂了模块与包的本质,彻底摆脱了“重复造轮子”的困境。

核心概念

  • 模块(Module):本质就是一个后缀为.py的文件,里面可以包含函数、类、变量和可执行代码,目的是将功能拆分,方便在其他代码中调用。比如Python自带的math模块、random模块,都是现成的功能集合。
  • 包(Package):是多个模块的“容器”,本质是一个包含__init__.py文件(Python3.3+可省略,但规范开发建议保留)的文件夹,用于对模块进行分类管理,避免模块名冲突。比如我们可以创建一个名为my_tools的包,里面存放处理文件、数据计算等不同功能的模块。

常用导入方式

python
# 1. 导入整个模块
import math
print(math.sqrt(16))  # 调用模块中的函数

# 2. 导入模块并起别名(最常用,简化代码)
import numpy as np
import pandas as pd

# 3. 从模块中导入指定功能,避免导入冗余内容
from math import pi, sin
print(pi)  # 直接使用导入的变量/函数

# 4. 从包中导入模块或功能
from my_tools import file_handle  # 从my_tools包导入file_handle模块
from my_tools.data_calc import add  # 从包的模块中导入指定函数

关键注意点

if __name__ == '__main__':这个语句是模块开发的“神器”,用于判断模块是被导入还是直接运行。当直接运行该模块时,冒号后的代码会执行;当模块被导入到其他文件时,这部分代码不会执行,避免了导入时的冗余输出。

二、集合(Set):高效去重与关系运算的利器

集合是Python中一种无序、不重复的数据结构,本周学习后发现,它在数据去重和关系判断场景中非常实用,比列表、字典的相关操作更高效。

核心特性

  • 无序性:集合中的元素没有固定顺序,不能通过索引访问,遍历结果也不固定。
  • 唯一性:集合中不会有重复元素,传入重复数据会自动去重,这是最常用的功能。
  • 可变性:可以添加、删除元素,但集合中的元素必须是不可变类型(如整数、字符串、元组),列表、字典等可变类型不能作为集合元素。

常用操作

python
# 1. 集合创建
s1 = {1, 2, 3, 3, 4}  # 自动去重,结果为{1,2,3,4}
s2 = set([1, 2, 5, 6])  # 用列表创建集合

# 2. 核心操作
s1.add(5)  # 添加元素,s1变为{1,2,3,4,5}
s1.remove(3)  # 删除元素,不存在会报错
s1.discard(6)  # 删除元素,不存在不报错

# 3. 关系运算(实用场景)
print(s1 & s2)  # 交集:{1,2}
print(s1 | s2)  # 并集:{1,2,4,5,6}
print(s1 - s2)  # 差集:{4}
print(s1 ^ s2)  # 对称差集:{4,6}

实用场景

数据去重(如处理用户输入的重复数据)、判断两个数据集的交集/并集(如筛选两个列表中的共同元素),用集合操作比列表推导式更简洁、高效。

三、类与对象:Python面向对象编程的入门

类与对象是面向对象编程(OOP)的核心,本周终于打通了“类”和“对象”的逻辑,理解了“封装、继承、多态”的初步概念,也学会了简单的类的定义和使用。

核心概念

  • 类(Class):是一个“模板”,定义了对象的属性(特征)和方法(行为),比如“人类”可以作为一个类,属性有姓名、年龄,方法有吃饭、睡觉。
  • 对象(Object):是类的“实例”,是根据类模板创建的具体个体,比如“张三”就是“人类”这个类的一个对象。

实操示例

python
# 定义一个类
class Person:
    # 构造方法,初始化对象的属性
    def __init__(self, name, age):
        self.name = name  # 实例属性
        self.age = age
    
    # 定义方法(对象的行为)
    def introduce(self):
        print(f"大家好,我叫{self.name},今年{self.age}岁。")

# 创建对象(实例化类)
person1 = Person("张三", 20)
person2 = Person("李四", 22)

# 调用对象的方法和属性
print(person1.name)  # 访问属性,输出:张三
person2.introduce()  # 调用方法,输出:大家好,我叫李四,今年22岁。

初步感悟

类的核心是“封装”,将属性和方法整合到一起,让代码更具模块化;后续将深入学习继承和多态,进一步提升代码的复用性和扩展性。

四、JSON:数据交换的通用格式

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在Python中,JSON常用于读取配置文件、接口数据交互等场景,本周学会了JSON与Python数据类型的相互转换。

核心知识点

  • Python中处理JSON需要导入json模块,核心有4个函数:dump(写入JSON文件)、load(读取JSON文件)、dumps(Python数据转JSON字符串)、loads(JSON字符串转Python数据)。
  • JSON与Python数据类型的对应关系:JSON的对象对应Python的字典,JSON的数组对应Python的列表,JSON的字符串对应Python的字符串,JSON的数字对应Python的整数/浮点数。

实操示例

python
import json

# 1. Python数据转JSON字符串
data = {"name": "张三", "age": 20, "hobbies": ["篮球", "编程"]}
json_str = json.dumps(data, ensure_ascii=False)  # ensure_ascii=False显示中文
print(json_str)  # 输出:{"name": "张三", "age": 20, "hobbies": ["篮球", "编程"]}

# 2. JSON字符串转Python数据
python_data = json.loads(json_str)
print(python_data["hobbies"])  # 输出:['篮球', '编程']

# 3. 写入JSON文件
with open("data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=4)  # indent=4格式化写入

# 4. 读取JSON文件
with open("data.json", "r", encoding="utf-8") as f:
    read_data = json.load(f)
print(read_data)  # 输出:{'name': '张三', 'age': 20, 'hobbies': ['篮球', '编程']}

注意点

写入JSON文件时,ensure_ascii=False必须加上,否则中文会被编码为Unicode字符;indent参数用于格式化输出,让JSON文件更易读。

五、阿里云百炼AI接入:让Python代码拥有AI能力

本周最具趣味性的学习内容,就是从阿里云百炼中导入AI程序到Python代码中,实现了简单的AI交互,让我感受到了Python与AI结合的强大魅力,操作过程也比想象中简单。

核心步骤

  1. 准备工作:登录阿里云百炼平台,创建AI应用,获取API密钥(Access Key ID和Access Key Secret),这是Python代码与阿里云百炼AI交互的凭证。
  1. 安装依赖库:阿里云百炼提供了官方SDK,通过pip安装即可:pip install alibabacloud-bailian20240228
  1. 导入AI程序并调用:复制阿里云百炼中生成的Python调用代码,替换自己的API密钥,即可实现AI对话、文本生成等功能。

实操示例

python
from alibabacloud_bailian20240228.client import Client as Bailian20240228Client
from alibabacloud_tea_openapi import models as open_api_models

# 配置API密钥
config = open_api_models.Config(
    access_key_id="你的Access Key ID",
    access_key_secret="你的Access Key Secret"
)
# 配置地域
config.endpoint = "bailian.aliyuncs.com"

# 创建客户端
client = Bailian20240228Client(config)

# 调用AI对话接口
def ai_chat(prompt):
    request = models.ChatRequest(
        model="qwen-max",  # 选择AI模型
        messages=[{"role": "user", "content": prompt}]
    )
    response = client.chat(request)
    return response.body["choices"][0]["message"]["content"]

# 测试AI对话
print(ai_chat("用Python写一个简单的集合去重示例"))

注意点

API密钥需要妥善保管,不要泄露;不同的AI模型有不同的调用参数,可根据阿里云百炼的文档调整;调用次数有限制,测试时注意控制频率。

六、一周学习总结与感悟

本周的学习内容涵盖了Python进阶的核心知识点和实用技能,从模块包的代码复用,到集合的数据处理,再到类与对象的面向对象编程,还有JSON的数据交互,最后是阿里云百炼AI的简单接入,每一个知识点都相辅相成,让我逐步从“会写代码”向“会写规范、实用的代码”转变。

学习过程中也遇到了一些小问题:比如导入模块时的路径错误、类的构造方法使用不熟练、JSON中文编码问题,还有阿里云百炼API调用时的密钥配置错误,但通过查阅官方文档、调试代码,最终都一一解决了。这也让我明白,Python学习没有捷径,多实操、多复盘、多解决问题,才能真正掌握知识点。

下周计划:深入学习类的继承与多态,熟练运用JSON处理复杂数据,进一步探索阿里云百炼AI的更多功能,尝试将AI能力融入自己的Python项目中,继续稳步提升Python技能。

如果有和我一样正在学习Python的小伙伴,欢迎在评论区交流学习心得,一起进步、一起成长!

本文为个人学习复盘,如有错误,欢迎各位大佬指正

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐