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. 变量命名
  • 规则:字母/数字/下划线组成,不能以数字开头。
  • 区分大小写:nameName 是不同变量。
  • 命名惯例:
    • 小写+下划线(如 user_name)。
    • 类名用大驼峰(如 ClassName)。

二、数据类型与操作

1. 基本数据类型
类型示例说明
int5, -3整数
float3.14, -2.5浮点数
str"Hello", 'Python'字符串
boolTrue, False布尔值
NoneTypeNone空值
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()  # 自动关闭文件

常见错误与规范

  1. 缩进错误:代码块必须严格对齐。
  2. 变量未定义:使用前需先赋值。
  3. 修改不可变对象:如字符串、元组不可修改。
  4. PEP8规范
    • 每行不超过79字符
    • 函数/类之间空两行
    • 逗号后加空格

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文详解ffmpeg环境搭建:Ubuntu系统ffmpeg配置nvidia硬件加速

在Ubuntu系统下安装FFmpeg有多种方式,其中最常用的是通过apt-get命令和源码编译安装。本文将分别介绍这两种方式,并提供安装过程。 一、apt-get安装 使用apt-get命令安装FFmpeg是最简单快捷的方式,只需要在终端中输入以下命令即可: # 更新软件包列表 sudo apt-get updat…

Android 14 、15动态申请读写权限实现 (Java)

在 Android 14、15 中&#xff0c;Google 进一步优化了存储权限系统&#xff0c;特别是写权限的管理。以下是完整的 Java 实现方案&#xff1a; 1. AndroidManifest.xml 声明权限 <!-- Android 14 存储权限 --> <uses-permission android:name"android.permiss…

小刚说C语言刷题——第23讲 字符数组

前面&#xff0c;我们学习了一维数组和二维数组的概念。今天我们学习一种特殊的数组&#xff0c;字符数组。 1.字符数组的概念 字符数组就是指元素类型为字符的数组。字符数组是用来存放字符序列或者字符串的。 2.字符数组的定义及语法 char ch[5]; 3.字符数组的初始化及赋…

用AI生成系统架构图

DeepSeek+Drawio+SVG绘制架构图-找到一种真正可行实用的方法和思路 1、使用DeepSeek生成SVG文件,导入drawio工具的方法 🔥 问题根源分析 错误现象: • 导入时报错包含 data:image/SVG;base64 和 %20 等 URL 编码字符 • 代码被错误转换为 Base64 格式(适用于网页嵌入,但…

免费干净!付费软件的平替款!

今天给大家分享一款超棒的电脑录屏软件&#xff0c;简直不要太好用&#xff01;它的界面特别干净&#xff0c;没有一点儿广告&#xff0c;看起来特别清爽。 电脑录屏 无广告的录屏软件 这个软件超方便&#xff0c;根本不用安装&#xff0c;打开就能直接用。 它功能也很强大&am…

【XCP实战】AUTOSAR架构下XCP从0到1开发配置实践

目录 前言 正文 1.CAN功能开发 1.1 DBC的制作及导入 1.2 CanTrcv模块配置 1.3 Can Controller模块配置 1.4 CanIf模块配置 2.XCP模块集成配置配置 2.1.XCP模块配置 2.2.XCP模块的Task Mapping 2.3.XCP模块的初始化 3.在链接文件中定义标定段 4.编写标定相关的测试…

Vitis: 使用自定义IP时 Makefile错误 导致编译报错

参考文章: 【小梅哥FPGA】 Vitis开发中自定义IP的Makefile路径问题解决方案 Vitis IDE自定义IP Makefile错误&#xff08;arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument&#xff09;解决方法 Vitis 使用自定义IP时: Makefile 文件里的语句是需要修改的&#xff0c;…

Python中NumPy的统计运算

在数据分析和科学计算领域&#xff0c;Python凭借其丰富的库生态系统成为首选工具之一&#xff0c;而NumPy作为Python数值计算的核心库&#xff0c;凭借其高效的数组操作和强大的统计运算功能&#xff0c;广泛应用于机器学习、信号处理、统计分析等场景。本文将系统介绍NumPy在…

C语言程序环境和预处理详解

本章重点&#xff1a; 程序的翻译环境 程序的执行环境 详解&#xff1a;C语言程序的编译链接 预定义符号介绍 预处理指令 #define 宏和函数的对比 预处理操作符#和##的介绍 命令定义 预处理指令 #include 预处理指令 #undef 条件编译 程序的翻译环境和执行环…

智能工厂调度系统设计方案研究报告

一、系统架构设计 1.1 物理部署架构 设备层&#xff1a;部署大量搭载多传感器阵列的 AGV 智能循迹车&#xff0c;这些传感器包括激光雷达、视觉相机、超声波传感器等&#xff0c;用于感知周围环境信息&#xff0c;实现自主导航与避障功能&#xff1b;在每个工序节点处设置 RF…

全新突破 | 更全面 · 更安全 · 更灵活

xFile 高可用存储网关 2.0 重磅推出&#xff0c;新增多空间隔离功能从根源上防止数据冲突&#xff0c;保障各业务数据的安全性与独立性。同时支持 NFS、CIFS、FTP 等多种主流文件协议&#xff0c;无需繁琐的数据拷贝转换&#xff0c;即可与现有系统无缝对接&#xff0c;降低集成…

C# js 判断table中tr否存在相同的值

html 中如&#xff1a; 实现&#xff1a;table数据表格中&#xff0c;点击删除按钮时&#xff0c;验证相同子订单号条数是否大于1&#xff0c;大于允许删除。保证数据表格中只有唯一的一条子订单号数据。 <table style"width: 100%; background-color: #fff;" ce…

操作系统基础:07 我们的任务

课程回顾与后续规划 上节课我们探讨了操作系统的历史。了解历史能让我们明智&#xff0c;从操作系统的发展历程中&#xff0c;我们总结出两个核心的里程碑式图像&#xff1a;多进程&#xff08;多任务切换&#xff09;图像和文件操作图像 。Unix和Windows等系统的成功&#xf…

16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--微服务的部署与运维

部署与运维是微服务架构成功实施的关键环节。一个良好的部署与运维体系能够保障微服务的高可用性、可扩展性和可靠性。在这一阶段&#xff0c;重点包括微服务的容器化与编排、API 网关的实现以及日志与监控体系的建设。 一、容器化与编排 1.1 使用 Docker 容器化微服务 容器…

MCP基础学习计划详细总结

MCP基础学习计划详细总结 1.MCP概述与基础 • MCP&#xff08;Model Context Protocol&#xff09;&#xff1a;由Anthropic公司于2024年11月推出&#xff0c;旨在实现大型语言模型&#xff08;LLM&#xff09;与外部数据源和工具的无缝集成。 • 核心功能&#xff1a; • 资…

NoSQL入门指南:Redis与MongoDB的Java实战

一、为什么需要NoSQL&#xff1f; 在传统SQL数据库中&#xff0c;数据必须严格遵循预定义的表结构&#xff0c;就像把所有物品整齐摆放在固定尺寸的货架上。而NoSQL&#xff08;Not Only SQL&#xff09;数据库则像一个灵活的储物间&#xff0c;允许存储各种类型的数据&#x…

Java 列表初始化全解析:7种方式详解与最佳实践

文章目录 **引言****1. 传统逐个添加元素****特点****注意事项** **2. Arrays.asList() 构造函数****特点****注意事项** **3. 双括号初始化&#xff08;匿名内部类&#xff09;****特点****注意事项** **4. Java 9 List.of()&#xff08;不可变列表&#xff09;****特点****注…

最大公约数和最小倍数 java

在Java中&#xff0c;计算两个数的最大公约数&#xff08;Greatest Common Divisor, GCD&#xff09;和最小公倍数&#xff08;Least Common Multiple, LCM&#xff09;是常见的编程问题。以下是具体的实现方法和代码示例。 --- ### **1. 最大公约数 (GCD)** 最大公约数是指…

数据库——视图

一、视图的定义与核心特性 1.基本概念 (1)视图(View)是基于一个或多个底层表(或视图)的虚拟表,其本身不存储数据,仅保存查询语句的定义。当用户查询视图时,数据库会动态执行其封装的SQL语句,生成结果集。 (2)本质:视图是底层表的逻辑映射,结构与表相同(由行和列…

【Proteus仿真】【32单片机-A008】MPX4115压力检测系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、压力检测与LCD显示 2、超过上限&#xff0c;降压模块启动 3、压力检测范围15kpa-115kpa 4、压力阈值设置 5、超限报警 二、使用步骤 系统运行后&#xff0c;LCD160…