Python 基础语法汇总
Python 语法
│
├── 基本结构
│ ├── 语句(Statements)
│ │ ├── 表达式语句(如赋值、算术运算)
│ │ ├── 控制流语句(if, for, while)
│ │ ├── 定义语句(def, class)
│ │ └── 导入语句(import, from ... import)
│ ├── 代码块(由缩进定义)
│ └── 注释(单行 #, 多行 ''' 或 """)
│
├── 数据类型
│ ├── 基本类型
│ │ ├── 数字(int, float, complex)
│ │ ├── 字符串(str)
│ │ ├── 布尔值(bool)
│ │ └── 空值(NoneType)
│ ├── 复合类型
│ │ ├── 列表(list)
│ │ ├── 元组(tuple)
│ │ ├── 字典(dict)
│ │ └── 集合(set)
│ └── 类型转换(如 int(), str(), list())
│
├── 运算符
│ ├── 算术运算符(+, -, *, /, //, %, **)
│ ├── 比较运算符(==, !=, <, >, <=, >=)
│ ├── 逻辑运算符(and, or, not)
│ ├── 位运算符(&, |, ^, ~, <<, >>)
│ └── 赋值运算符(=, +=, -=, 等)
│
├── 控制流
│ ├── 条件语句(if-elif-else)
│ ├── 循环语句(for, while)
│ ├── 跳转语句(break, continue, pass)
│ └── 异常处理(try-except-finally-else)
│
├── 函数
│ ├── 定义(def)
│ ├── 参数(位置参数、默认参数、可变参数)
│ ├── 返回值(return)
│ ├── 作用域(局部变量、全局变量)
│ └── 匿名函数(lambda)
│
├── 类与对象
│ ├── 类定义(class)
│ ├── 继承(单继承、多继承)
│ ├── 方法(实例方法、类方法、静态方法)
│ ├── 特殊方法(如 __init__, __str__)
│ └── 属性(@property)
│
├── 模块与包
│ ├── 模块(.py 文件)
│ ├── 导入(import 模块名, from 模块名 import 成员)
│ ├── 包(包含 __init__.py 的目录)
│ └── 标准库与第三方库
│
└── 其他特性├── 迭代器与生成器(iter, next, yield)├── 装饰器(@decorator)├── 上下文管理器(with 语句)└── 元编程(如 type, exec, eval)

一、基础语法规则
1. 缩进与代码块
- Python使用缩进(4个空格)代替大括号
{}表示代码块。 - 错误示例:
if True:
print("错误!") # 缩进不一致会报错
- 正确写法:
if True:print("缩进正确!") # 必须缩进4个空格
2. 注释
- 单行注释:以
#开头。 - 多行注释:用三引号
"""或'''包裹。
# 这是单行注释
"""
这是多行注释
可以写多行内容
"""
3. 语句分隔
- 一行写多条语句时用分号
;分隔(不推荐,多条语句最好是分行写):
a = 5; b = 10; print(a + b)
4. 变量命名
- 规则:字母/数字/下划线组成,不能以数字开头。
- 区分大小写:
name和Name是不同变量。 - 命名惯例:
- 小写+下划线(如
user_name)。 - 类名用大驼峰(如
ClassName)。
- 小写+下划线(如
二、数据类型与操作
1. 基本数据类型
| 类型 | 示例 | 说明 |
|---|---|---|
int | 5, -3 | 整数 |
float | 3.14, -2.5 | 浮点数 |
str | "Hello", 'Python' | 字符串 |
bool | True, False | 布尔值 |
NoneType | None | 空值 |
2. 复合数据类型
- 列表(List):有序、可变
nums = [1, 2, 3]
nums[0] = 10 # 修改元素
- 元组(Tuple):有序、不可变
point = (10, 20)
# point[0] = 5 # 报错!
- 字典(Dict):键值对集合
user = {"name": "Alice", "age": 25}
print(user["name"]) # Alice
- 集合(Set):无序、唯一
unique_nums = {1, 2, 2, 3} # 自动去重 → {1, 2, 3}
3. 类型转换
a = int("10") # 字符串转整数 → 10
b = float(5) # 整数转浮点数 → 5.0
c = str(3.14) # 浮点数转字符串 → "3.14"
d = list("abc") # 字符串转列表 → ['a', 'b', 'c']
三、运算符
1. 算术运算符
print(5 + 3) # 加法 → 8
print(5 ** 2) # 幂运算 → 25
print(10 % 3) # 取模 → 1
2. 比较运算符
print(3 > 2) # True
print(5 == 5.0) # True(值相等)
print(5 is 5.0) # False(对象不同)
3. 逻辑运算符
print(True and False) # False
print(not True) # False
4. 成员运算符
nums = [1, 2, 3]
print(2 in nums) # True
print(4 not in nums) # True
四、流程控制
1. 条件语句
age = 18
if age < 13:print("儿童")
elif age < 18:print("青少年")
else:print("成年人")
2. 循环语句
for** 循环**:
for i in range(3): # 输出0,1,2print(i)# 遍历列表
fruits = ["apple", "banana"]
for fruit in fruits:print(fruit)
while** 循环**:
count = 0
while count < 3:print(count)count += 1 # 必须手动更新条件
3. 循环控制
# break 终止循环
for i in range(5):if i == 3:break # 循环终止于i=3print(i)# continue 跳过当前迭代
for i in range(5):if i == 2:continue # 跳过i=2print(i)
五、函数
1. 定义与调用
def greet(name):"""返回问候语(文档字符串)"""return f"Hello, {name}!"print(greet("Alice")) # Hello, Alice!
2. 参数传递
- 默认参数:
def power(base, exp=2):return base ** expprint(power(3)) # 9 (exp默认为2)
print(power(3, 3)) # 27
- 可变参数:
def sum_all(*args):return sum(args)print(sum_all(1, 2, 3)) # 6
3. Lambda函数
square = lambda x: x ** 2
print(square(5)) # 25
六、面向对象编程(OOP)
1. 类与对象
class Dog:# 类属性species = "Canis familiaris"# 构造方法def __init__(self, name, age):self.name = name # 实例属性self.age = age# 实例方法def bark(self):print(f"{self.name} 汪汪叫!")# 创建对象
my_dog = Dog("Buddy", 3)
my_dog.bark() # Buddy 汪汪叫!
2. 继承
class GoldenRetriever(Dog):def __init__(self, name, age, color):super().__init__(name, age)self.color = color# 方法重写def bark(self):print("温柔的汪汪!")golden = GoldenRetriever("Max", 2, "金色")
golden.bark() # 温柔的汪汪!
七、异常处理
try:num = int(input("输入数字:"))result = 10 / num
except ValueError:print("输入的不是数字!")
except ZeroDivisionError:print("不能除以0!")
else:print(f"结果是{result}")
finally:print("程序执行完毕")
八、文件操作
# 写入文件
with open("test.txt", "w") as f:f.write("Hello, Python!")# 读取文件
with open("test.txt", "r") as f:content = f.read()print(content) # Hello, Python!
九、模块与包
1. 导入模块
import math
print(math.sqrt(16)) # 4.0from datetime import datetime
print(datetime.now()) # 当前时间
2. 自定义模块
- 创建
mymodule.py:
def say_hello():print("Hello from mymodule!")
- 导入使用:
import mymodule
mymodule.say_hello()
十、Pythonic技巧
1. 列表推导式
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
2. 字典推导式
square_dict = {x: x**2 for x in range(3)} # {0:0, 1:1, 2:4}
3. 上下文管理器
with open("file.txt", "r") as f:data = f.read() # 自动关闭文件
常见错误与规范
- 缩进错误:代码块必须严格对齐。
- 变量未定义:使用前需先赋值。
- 修改不可变对象:如字符串、元组不可修改。
- PEP8规范:
- 每行不超过79字符
- 函数/类之间空两行
- 逗号后加空格
相关文章:
Python 基础语法汇总
Python 语法 │ ├── 基本结构 │ ├── 语句(Statements) │ │ ├── 表达式语句(如赋值、算术运算) │ │ ├── 控制流语句(if, for, while) │ │ ├── 定义语句(def…...
Linux上位机开发实践(OpenCV算法硬件加速)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图像处理里面,opencv基本是一个标准模块。但是由于图像处理的特点,如果所有的算法都是cpu来做的话,效率会很低。…...
Spring Boot MongoDB自定义连接池配置
手打不易,如果转摘,请注明出处! 注明原文:http://zhangxiaofan.blog.csdn.net/article/details/144341407 一、引言 在 Spring Boot 应用中使用 MongoDB 时,合理配置连接池可以显著提升数据库访问的性能和稳定性。默…...
Redis与Mysql双写一致性如何保证?
我们在面试的时候redis与mysql双写一致性是一个常考的问题,今天我们就一起探讨一下吧 所谓的一致性就是数据的一致性,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性: 这种一致性级别是最符合用户直觉的&…...
C#核心学习(十六)面向对象--关联知识点(2)string和Stringbuilder
引言 在C#开发中,字符串处理是日常编码的基础需求。然而string和StringBuilder的选择常常引发困惑——何时该用不可变的string?什么场景下必须选择可变的StringBuilder?本文将深入剖析两者的核心差异,并通过完整API对比给出实用建…...
游戏引擎学习第223天
回顾 今天我们正在进行过场动画序列的制作,因此我想深入探讨这个部分。昨天,我们暂时停止了过场动画的制作,距离最终结局还有一些内容没有完成。今天的目标是继续完成这些内容。 我们已经制作了一个过场动画的系列,并把它们集中…...
趣味编程之go与rust的爱恨情仇
声明:此篇文章利用deepseek生成。 第一章:出身之谜 Go(江湖人称"高小戈")是名门之后——谷歌家的三少爷。生来就带着"简单粗暴"的家族基因,口号是**“少写代码多搬砖,并发处理赛神仙”**。它爹Ro…...
DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_基础功能示例(CalendarView01_01)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_基础功能示例(CalendarView01_01)📚…...
数据结构第五版【李春葆】
数据结构教程上机实验指导第5版(李春葆主编).pdf 数据结构教程(第5版)(李春葆).pdf 数据结构教程(第五版)课后习题参考答案(李春葆).pdf 数据结构教…...
LabVIEW配电器自动测试系统
随着航天技术的迅猛发展,航天器供配电系统的结构越来越复杂,对配电器的功能完整性、稳定性和可靠性提出了更高要求。传统人工测试方式难以满足高效率、高精度、可重复的测试需求。本项目开发了一套基于LabVIEW平台的宇航配电器自动测试系统,融…...
PhotoShop学习09
1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径,只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里,它的快捷键为P。 在使用前,可以把填充和描边选为空颜色,并打开路径选项,勾…...
【C++】哈希unordered_map和set的使用以及哈希表,哈希桶的概念以及底层实现
📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 本文章完整代码在下篇文章开头给出 上篇文章:map和set使用红黑树封装的底层实现 下篇文章:封装…...
AOSP14 Launcher3——手势上滑关键类AbsSwipeHandler解析
我们来深入分析 quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java 这个非常核心且复杂的类。 1. 核心作用 (Core Role): AbsSwipeUpHandler 是 Quickstep (Launcher3 的手势导航实现) 中处理从屏幕底部上滑手势的核心逻辑抽象基类。它负责管理从手势开始到结束的…...
设计模式——建造者模式(生成器模式)总结
当我们需要创建一个非常复杂的对象时,可以使用建造者模式,分步骤建造一个对象,最后将完整的对象返回给客户端。 比如,我们要生成一个房子对象,建造一个房子,需要打地基、盖围墙、盖地板、安装门、安装窗户…...
Spring Boot(二十一):RedisTemplate的String和Hash类型操作
RedisTemplate和StringRedisTemplate的系列文章详见: Spring Boot(十七):集成和使用Redis Spring Boot(十八):RedisTemplate和StringRedisTemplate Spring Boot(十九)…...
使用Python爬虫的2大原因和6大常用库
爬虫其实就是请求http、解析网页、存储数据的过程,并非高深的技术,但凡是编程语言都能做,连Excel VBA都可以实现爬虫,但Python爬虫的使用频率最高、场景最广。 这可不仅仅是因为Python有众多爬虫和数据处理库,还有一个…...
Java 架构设计:从单体架构到微服务的转型之路
Java 架构设计:从单体架构到微服务的转型之路 在现代软件开发中,架构设计的选择对系统的可扩展性、可维护性和性能有着深远的影响。随着业务需求的日益复杂和用户规模的不断增长,传统的单体架构逐渐暴露出其局限性,而微服务架构作…...
C# 混淆代码工具--ConfuserEx功能与使用指南
目录 1 前言1.1 可能带来的问题 2 ConfuserEx2.1 简介2.2 功能特点2.3 基本使用方法2.4 集成到MSBuild2.5 深入设置2.5.1 保护机制2.5.1.1 ConfuserEx Protection 2.5.2 精细的代码保护主要特性1. decl-type(string)2.full-name(string)3. is-public()4. match(string)5. match…...
使用PyTorch实现目标检测边界框转换与可视化
一、引言 在目标检测任务中,边界框(Bounding Box)的坐标表示与转换是核心基础操作。本文将演示如何: 实现边界框的两种表示形式(角点坐标 vs 中心坐标)之间的转换 使用Matplotlib在图像上可视化边界框 验…...
nlp面试重点
深度学习基本原理:梯度下降公式,将损失函数越来越小,最终预测值和实际值误差比较小。 交叉熵:-p(x)logq(x),p(x)是one-hot形式。如果不使用softmax计算交叉熵,是不行的。损失函数可能会非常大,…...
欢乐力扣:反转链表二
文章目录 1、题目描述2、思路 1、题目描述 反转链表二。 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 2、思路 参考官方题解,基本思路…...
2025最新系统 Git 教程(七)(完结)
第4章 分布式Git 4.1 分布式 Git - 分布式工作流程 你现在拥有了一个远程 Git 版本库,能为所有开发者共享代码提供服务,在一个本地工作流程下,你也已经熟悉了基本 Git 命令。你现在可以学习如何利用 Git 提供的一些分布式工作流程了。 这一…...
14-大模型微调和训练之-Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析(二分类))
1. datasets 库核心方法 1.1. 列出数据集 使用 datasets 库,你可以轻松列出所有 Hugging Face 平台上的数据集: from datasets import list_datasets # 列出所有数据集 all_datasets list_datasets() print(all_datasets)1.2. 加载数据集 你可以通过…...
聊透多线程编程-线程基础-4.C# Thread 子线程执行完成后通知主线程执行特定动作
在多线程编程中,线程之间的同步和通信是一个常见的需求。例如,我们可能需要一个子线程完成某些任务后通知主线程,并由主线程执行特定的动作。本文将基于一个示例程序,详细讲解如何使用 AutoResetEvent 来实现这种场景。 示例代码…...
论文阅读笔记——Reactive Diffusion Policy
RDP 论文 通过 AR 提供实时触觉/力反馈;慢速扩散策略,用于预测低频潜在空间中的高层动作分块;快速非对称分词器实现闭环反馈控制。 ACT、 π 0 \pi_0 π0 采取了动作分块,在动作分块执行期间处于开环状态,无法及时响…...
ISIS协议(动态路由协议)
ISIS基础 基本概念 IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO (International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionL…...
大数据(7.1)Kafka实时数据采集与分发的企业级实践:从架构设计到性能调优
目录 一、实时数据洪流下的技术突围1.1 行业需求演进曲线1.2 传统方案的技术瓶颈 二、Kafka实时架构设计精要2.1 生产者核心参数矩阵2.1.1 分区策略选择指南 2.2 消费者组智能负载均衡 三、实时数据管道实战案例3.1 电商大促实时看板3.2 工业物联网预测性维护 四、生产环境性能…...
UniApp 实现兼容 H5 和小程序的拖拽排序组件
如何使用 UniApp 实现一个兼容 H5 和小程序的 九宫格拖拽排序组件,实现思路和关键步骤。 一、完整效果图示例 H5端 小程序端 git地址 二、实现目标 支持拖动菜单项改变顺序拖拽过程实时预览移动位置拖拽松开后自动吸附回网格兼容 H5 和小程序平台 三、功能…...
C,C++,C#
C、C 和 C# 是三种不同的编程语言,虽然它们名称相似,但在设计目标、语法特性、运行环境和应用场景上有显著区别。以下是它们的核心区别: 1. 设计目标和历史 语言诞生时间设计目标特点C1972(贝尔实验室)面向过程&#…...
MySQL | 三大日志文件
Undo Log(回滚日志) 实现原理与分类 原理:Undo Log 记录的是数据修改前的旧值,通过这些旧值可以将数据恢复到修改之前的状态。它采用的是逻辑日志,即记录的是如何撤销操作,而不是物理数据的实际值。 分类…...
