Python 基础语法汇总

news2025/4/18 10:05:00

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,2
    print(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=3
    print(i)

# continue 跳过当前迭代
for i in range(5):
    if i == 2:
        continue  # 跳过i=2
    print(i)

五、函数

1. 定义与调用
def greet(name):
    """返回问候语(文档字符串)"""
    return f"Hello, {name}!"

print(greet("Alice"))  # Hello, Alice!
2. 参数传递
  • 默认参数
def power(base, exp=2):
    return base ** exp

print(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.0

from 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.coloradmin.cn/o/2334896.html

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

相关文章

Linux上位机开发实践(OpenCV算法硬件加速)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 图像处理里面&#xff0c;opencv基本是一个标准模块。但是由于图像处理的特点&#xff0c;如果所有的算法都是cpu来做的话&#xff0c;效率会很低。…

Spring Boot MongoDB自定义连接池配置

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;http://zhangxiaofan.blog.csdn.net/article/details/144341407 一、引言 在 Spring Boot 应用中使用 MongoDB 时&#xff0c;合理配置连接池可以显著提升数据库访问的性能和稳定性。默…

游戏引擎学习第223天

回顾 今天我们正在进行过场动画序列的制作&#xff0c;因此我想深入探讨这个部分。昨天&#xff0c;我们暂时停止了过场动画的制作&#xff0c;距离最终结局还有一些内容没有完成。今天的目标是继续完成这些内容。 我们已经制作了一个过场动画的系列&#xff0c;并把它们集中…

DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_基础功能示例(CalendarView01_01)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_基础功能示例(CalendarView01_01)📚…

LabVIEW配电器自动测试系统

随着航天技术的迅猛发展&#xff0c;航天器供配电系统的结构越来越复杂&#xff0c;对配电器的功能完整性、稳定性和可靠性提出了更高要求。传统人工测试方式难以满足高效率、高精度、可重复的测试需求。本项目开发了一套基于LabVIEW平台的宇航配电器自动测试系统&#xff0c;融…

PhotoShop学习09

1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径&#xff0c;只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里&#xff0c;它的快捷键为P。 在使用前&#xff0c;可以把填充和描边选为空颜色&#xff0c;并打开路径选项&#xff0c;勾…

【C++】哈希unordered_map和set的使用以及哈希表,哈希桶的概念以及底层实现

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f310; C 语言 本文章完整代码在下篇文章开头给出 上篇文章&#xff1a;map和set使用红黑树封装的底层实现 下篇文章&#xff1a;封装…

设计模式——建造者模式(生成器模式)总结

当我们需要创建一个非常复杂的对象时&#xff0c;可以使用建造者模式&#xff0c;分步骤建造一个对象&#xff0c;最后将完整的对象返回给客户端。 比如&#xff0c;我们要生成一个房子对象&#xff0c;建造一个房子&#xff0c;需要打地基、盖围墙、盖地板、安装门、安装窗户…

使用Python爬虫的2大原因和6大常用库

爬虫其实就是请求http、解析网页、存储数据的过程&#xff0c;并非高深的技术&#xff0c;但凡是编程语言都能做&#xff0c;连Excel VBA都可以实现爬虫&#xff0c;但Python爬虫的使用频率最高、场景最广。 这可不仅仅是因为Python有众多爬虫和数据处理库&#xff0c;还有一个…

Java 架构设计:从单体架构到微服务的转型之路

Java 架构设计&#xff1a;从单体架构到微服务的转型之路 在现代软件开发中&#xff0c;架构设计的选择对系统的可扩展性、可维护性和性能有着深远的影响。随着业务需求的日益复杂和用户规模的不断增长&#xff0c;传统的单体架构逐渐暴露出其局限性&#xff0c;而微服务架构作…

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实现目标检测边界框转换与可视化

一、引言 在目标检测任务中&#xff0c;边界框&#xff08;Bounding Box&#xff09;的坐标表示与转换是核心基础操作。本文将演示如何&#xff1a; 实现边界框的两种表示形式&#xff08;角点坐标 vs 中心坐标&#xff09;之间的转换 使用Matplotlib在图像上可视化边界框 验…

nlp面试重点

深度学习基本原理&#xff1a;梯度下降公式&#xff0c;将损失函数越来越小&#xff0c;最终预测值和实际值误差比较小。 交叉熵&#xff1a;-p(x)logq(x)&#xff0c;p(x)是one-hot形式。如果不使用softmax计算交叉熵&#xff0c;是不行的。损失函数可能会非常大&#xff0c;…

欢乐力扣:反转链表二

文章目录 1、题目描述2、思路 1、题目描述 反转链表二。  给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 2、思路 参考官方题解&#xff0c;基本思路…

14-大模型微调和训练之-Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析(二分类))

1. datasets 库核心方法 1.1. 列出数据集 使用 datasets 库&#xff0c;你可以轻松列出所有 Hugging Face 平台上的数据集&#xff1a; from datasets import list_datasets # 列出所有数据集 all_datasets list_datasets() print(all_datasets)1.2. 加载数据集 你可以通过…

论文阅读笔记——Reactive Diffusion Policy

RDP 论文 通过 AR 提供实时触觉/力反馈&#xff1b;慢速扩散策略&#xff0c;用于预测低频潜在空间中的高层动作分块&#xff1b;快速非对称分词器实现闭环反馈控制。 ACT、 π 0 \pi_0 π0​ 采取了动作分块&#xff0c;在动作分块执行期间处于开环状态&#xff0c;无法及时响…

ISIS协议(动态路由协议)

ISIS基础 基本概念 IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是ISO &#xff08;International Organization for Standardization&#xff0c;国际标准化组织&#xff09;为它的CLNP&#xff08;ConnectionL…

UniApp 实现兼容 H5 和小程序的拖拽排序组件

如何使用 UniApp 实现一个兼容 H5 和小程序的 九宫格拖拽排序组件&#xff0c;实现思路和关键步骤。 一、完整效果图示例 H5端 小程序端 git地址 二、实现目标 支持拖动菜单项改变顺序拖拽过程实时预览移动位置拖拽松开后自动吸附回网格兼容 H5 和小程序平台 三、功能…

【网络协议】WebSocket讲解

目录 webSocket简介 连接原理解析: 客户端API 服务端API&#xff08;java&#xff09; 实战案例 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写服务端逻辑 &#xff08;3&#xff09;注册配置类 &#xff08;4&#xff09;前端连接 WebSocket 示例…

啥是Spring,有什么用,既然收费,如何免费创建SpringBoot项目,依赖下载不下来的解决方法,解决99%问题!

一、啥是Spring&#xff0c;为啥选择它 我们平常说的Spring指的是Spring全家桶&#xff0c;我们为什么要选择Spring&#xff0c;看看官方的话&#xff1a; 意思就是&#xff1a;用这个东西&#xff0c;又快又好又安全&#xff0c;反正就是好处全占了&#xff0c;所以我们选择它…