Python 详解:从语法基础到进阶实战

发布时间:2026/8/25 15:55:23

Python 详解:从语法基础到进阶实战
1. Python 简介Python 是一门简洁、易读、功能强大的高级编程语言由 Guido van Rossum 在 1991 年首次发布。它强调代码可读性用缩进表达代码块拥有丰富的标准库和第三方生态被广泛应用于 Web 开发、数据分析、人工智能、自动化运维和科学计算等领域。Python 的主要优点包括语法简洁接近自然语言适合初学者快速上手。跨平台支持 Windows、macOS、Linux 等主流操作系统。拥有庞大的第三方库如 NumPy、Pandas、Django、Flask、Requests 等。既是解释型语言又支持面向对象、函数式等多种编程范式。2. 环境搭建2.1 安装 Python访问 Python 官方网站下载适合自己操作系统的安装包。安装时建议勾选「Add Python to PATH」这样可以在命令行中直接使用python命令。安装完成后可在终端中检查版本python--version如果同时安装了 Python 2 和 Python 3部分系统可能需要使用python3命令。2.2 选择开发工具初学者可以使用 IDLE、VS Code、PyCharm Community 等编辑器。推荐安装 VS Code 并搭配 Python 扩展以获得代码补全、调试和虚拟环境管理等能力。2.3 创建虚拟环境虚拟环境可以隔离不同项目的依赖避免版本冲突python-mvenv venv激活虚拟环境Windowsvenv\Scripts\activatemacOS/Linuxsource venv/bin/activate3. 基础语法3.1 注释单行注释使用#多行注释可以使用三个引号# 这是一个单行注释 这是一个多行注释 通常用于说明函数或模块。 3.2 变量与数据类型Python 是动态类型语言变量无需声明类型直接赋值即可nameAlice# 字符串 strage25# 整数 intheight1.75# 浮点数 floatis_studentTrue# 布尔值 bool常用数据类型包括数字int、float、complex字符串str布尔值bool列表list元组tuple字典dict集合set3.3 字符串操作textHello, Pythonprint(text.upper())# 转大写print(text.lower())# 转小写print(text.replace(Python,World))# 替换print(text.split(,))# 分割为列表print(len(text))# 获取长度字符串格式化常用 f-stringnameAliceage25print(f我叫{name}今年{age}岁。)3.4 列表、元组、字典与集合列表是有序、可变的序列fruits[apple,banana,cherry]fruits.append(orange)fruits.remove(banana)print(fruits[0])元组是有序、不可变的序列point(3,5)x,ypoint字典存储键值对user{name:Alice,age:25}user[city]Beijingprint(user.get(name))集合存储不重复元素适合去重和集合运算numbers{1,2,2,3,3}print(numbers)# {1, 2, 3}4. 控制流程4.1 条件判断score85ifscore90:gradeAelifscore80:gradeBelifscore60:gradeCelse:gradeDprint(grade)4.2 循环for循环常用于遍历序列或配合range使用foriinrange(5):print(i)forfruitin[apple,banana]:print(fruit)while循环在条件为真时持续执行count0whilecount5:print(count)count1循环中可以使用break提前退出使用continue跳过本次迭代。5. 函数函数使用def关键字定义可以设置默认参数、接收任意数量参数defgreet(name,greetingHello):returnf{greeting},{name}!print(greet(Alice))print(greet(Bob,greetingHi))使用*args接收多个位置参数使用**kwargs接收多个关键字参数defsummarize(*args,**kwargs):print(位置参数:,args)print(关键字参数:,kwargs)summarize(1,2,3,nameAlice,age25)6. 面向对象编程6.1 类与对象类通过class关键字定义__init__是构造方法classPerson:def__init__(self,name,age):self.namename self.ageagedefintroduce(self):returnf我是{self.name}今年{self.age}岁。alicePerson(Alice,25)print(alice.introduce())6.2 继承子类可以继承父类的属性和方法并重写或扩展classStudent(Person):def__init__(self,name,age,school):super().__init__(name,age)self.schoolschooldefintroduce(self):basesuper().introduce()returnf{base}我在{self.school}上学。studentStudent(Bob,18,第一中学)print(student.introduce())7. 异常处理使用try、except、else、finally捕获和处理异常避免程序崩溃try:result10/0exceptZeroDivisionErrorase:print(f发生错误:{e})else:print(没有异常时执行)finally:print(无论是否异常都会执行)也可以主动抛出异常defdivide(a,b):ifb0:raiseValueError(除数不能为 0)returna/b8. 模块与包一个.py文件就是一个模块。使用import导入模块使用as起别名importmathfromdatetimeimportdatetimefromosimportpathasos_pathprint(math.sqrt(16))print(datetime.now())包是包含__init__.py文件的目录用来组织多个模块。标准库之外还可使用pip安装第三方包pipinstallrequests9. 文件操作使用open函数读写文件推荐用with自动管理资源# 写入withopen(example.txt,w,encodingutf-8)asf:f.write(Hello, Python\n)# 读取withopen(example.txt,r,encodingutf-8)asf:contentf.read()print(content)常用模式包括r读、w写覆盖、a追加、rb二进制读、wb二进制写。10. 常用标准库Python 内置了大量实用模块os操作系统接口处理路径、环境变量。sys系统相关参数和函数。jsonJSON 数据序列化与反序列化。re正则表达式。datetime日期和时间处理。collections提供Counter、defaultdict等数据结构。示例importjsonfromcollectionsimportCounter data{name:Alice,age:25}json_strjson.dumps(data,ensure_asciiFalse)print(json_str)words[apple,banana,apple,cherry]print(Counter(words))11. 列表推导式与生成器列表推导式可以快速生成列表squares[x**2forxinrange(10)]evens[xforxinrange(20)ifx%20]生成器按需产生数据节省内存defcount_up(n):i0whilein:yieldi i1fornumincount_up(5):print(num)12. 进阶特性12.1 装饰器装饰器在不修改原函数的情况下增强函数功能importtimedeftimer(func):defwrapper(*args,**kwargs):starttime.time()resultfunc(*args,**kwargs)print(f{func.__name__}耗时{time.time()-start:.4f}秒)returnresultreturnwrappertimerdefslow_function():time.sleep(1)slow_function()12.2 Lambda 函数lambda用于创建匿名函数适合简单场景addlambdaa,b:abprint(add(3,5))numbers[4,1,3,2]numbers.sort(keylambdax:-x)print(numbers)12.3map、filter、reducenums[1,2,3,4,5]squaredlist(map(lambdax:x**2,nums))evenslist(filter(lambdax:x%20,nums))fromfunctoolsimportreducetotalreduce(lambdaa,b:ab,nums)13. 学习路径建议先掌握基础语法和数据类型多写小例子巩固。熟悉函数、面向对象和异常处理理解代码组织方式。练习文件操作、模块导入和常用标准库。选择一个方向深入学习Web 开发、数据分析、爬虫、自动化或人工智能。动手完成小项目如待办事项应用、博客爬虫、数据分析脚本等。Python 的学习曲线相对平缓关键在于持续练习。从解决小问题开始逐步构建完整的项目能力就能把语言基础转化为实战技能。

相关新闻

PyTorch深度学习与实践【03】【数据的三种类型及其编码方案】

PyTorch深度学习与实践【03】【数据的三种类型及其编码方案】

2026/8/25 15:55:23

一、数据的三种类型 (一)连续值(比例 / 区间尺度) 数值之间的差值、倍数有实际物理含义。例子:重量 3kg,10kg。10‑37,代表重量差 7kg;10kg 是 3kg 的三倍重。 葡萄酒里面酒精度、酸…

辽宁智慧校园平台建设方案怎么选?几点实用经验帮你少走弯路

辽宁智慧校园平台建设方案怎么选?几点实用经验帮你少走弯路

2026/8/25 15:45:22

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

基于SpringBoot的医院患者与病历管理系统[源码免费+文档免费]

基于SpringBoot的医院患者与病历管理系统[源码免费+文档免费]

2026/8/25 15:45:22

🍅全部选题源码免费分享、无偿获取,支持软件定制开发;由于篇幅限制,获取完整文章或源码、代做项目的,本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片。🍅 🍅全部选题源码…

【非标自动化】3、AutoShop快速理解(系统变量表)

【非标自动化】3、AutoShop快速理解(系统变量表)

2026/8/25 16:35:25

这些“系统变量表”不只是给你看的,它们本质上是 AutoShop 已经预先定义好的一批特殊变量,用来让程序访问 PLC 自身的状态、通信状态、模块状态和系统参数。可以先把变量分成两类:普通变量:由用户自己定义 系统变量:由…

【非标自动化】3、AutoShop快速理解(软件界面)

【非标自动化】3、AutoShop快速理解(软件界面)

2026/8/25 16:35:25

这张界面可以先不要把它看成“很多复杂菜单”,而要把它理解成一套完整的PLC工程工作台:先配置PLC和硬件↓ 定义变量和设备地址↓ 编写控制程序↓ 编译检查↓ 连接PLC并下载↓ 在线监控和调试↓ 排查故障、保存项目界面上的不同区域,就是分别服…

黑马苍穹外卖笔记day10

黑马苍穹外卖笔记day10

2026/8/25 16:35:25

订单状态定时处理、来单提醒和客户催单Spring Task:Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。应用场景特别广泛,只要是需要定制处理的场景都可以使用Spring Taskcron表达式:cron表达式…

【非标自动化】3、AutoShop快速理解(软件介绍)

【非标自动化】3、AutoShop快速理解(软件介绍)

2026/8/25 16:35:25

AutoShop是汇川面向小型PLC(Programmable Logic Controller,可编程逻辑控制 器)产品的编程组态软件,具有友好的编程和调试环境,拥有丰富、强大的通信和控 制功能。支持梯形图(LD)、顺序功能图&a…

Kotlin 语言【知识点整理2】

Kotlin 语言【知识点整理2】

2026/8/25 16:35:24

目录 一、基本概念 1.包的定义与导入 2.程序入口点 2.1 输入 3.变量 二、基本类型 1.数字 1.1 整数类型 1.2 浮点类型 1.3 数字字面常量 1.4 装箱与缓存 1.4.1 JVM是怎么存储数字的? 1.4.2 使用可空类型的时候会触发装箱操作: 1.4.3 JVM 对…

es怎么做拆词的

es怎么做拆词的

2026/8/25 16:25:24

ES 做拆词(分词)的核心是分词器,它在索引文档和搜索时,负责把长文本切成一个个独立的词(term),这样才能建立倒排索引,实现高效的全文搜索。 这个过程主要有三种角色: 输入…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…