Python基础知识点--总结
1. 注释
注释用于提高代码的可读性,在代码中添加说明文字,使代码更容易理解。
- 单行注释:使用
#符号开头,注释内容在符号之后的行内。 - 多行注释:使用三引号(
'''或""")包裹注释内容,可跨多行。
# 这是一个单行注释
"""
这是一个多行注释
可以跨越多行
"""
2. 变量
变量是存储数据的容器,可以通过赋值操作将数据存储在变量中。
- 命名规则:
- 变量名由字母、数字和下划线组成,不能以数字开头。
- 变量名对大小写敏感。
- 使用有意义的变量名有助于代码的可读性。
age = 25
name = "Alice"
3. 输出
输出是将数据展示给用户或其他程序的过程,Python使用 print() 函数来输出内容。
print("Hello, World!")
print("Age:", age)
4. 输入
输入是从用户或其他程序获取数据的过程,Python使用 input() 函数来获取用户输入的数据。
name = input("Enter your name: ")
print("Hello, " + name)
5. 转换数据类型
Python支持多种数据类型,可以通过类型转换函数将一种数据类型转换为另一种。
- 常见的类型转换函数:
int():将数据转换为整数类型float():将数据转换为浮点数类型str():将数据转换为字符串类型
age = int(input("Enter your age: "))
height = float(input("Enter your height: "))
6. 运算符
运算符用于对变量或值执行操作。
- 算术运算符:
+,-,*,/,//,%,** - 比较运算符:
==,!=,>,<,>=,<= - 逻辑运算符:
and,or,not - 赋值运算符:
=,+=,-=,*=,/=,%= - 位运算符:
&,|,^,~,<<,>>
result = 3 + 5 is_equal = (3 == 5)
7. 条件语句
条件语句根据条件是否为真来决定执行的代码块,使用 if、elif 和 else 关键字。
age = 18
if age >= 18:
print("You are an adult.")
else:
print("You are a minor.")
8. 循环
循环用于重复执行一段代码。
for循环:用于遍历序列(如列表、字符串)中的每个元素。while循环:在条件为真时重复执行代码块。
# for循环
for i in range(5):
print(i)
# while循环
count = 0
while count < 5:
print(count)
count += 1
9. 字符串
字符串是字符的序列,使用单引号或双引号定义。
- 常用操作:
- 连接字符串:
+ - 重复字符串:
* - 访问字符:
[] - 切片:
[:]
- 连接字符串:
greeting = "Hello" name = "Alice" full_greeting = greeting + " " + name print(full_greeting)
10. 列表
列表是一个有序的可变集合,使用方括号定义,可以包含不同类型的元素。
- 常用操作:
- 添加元素:
append() - 删除元素:
remove(),pop() - 访问元素:
[] - 切片:
[:]
- 添加元素:
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits[1]) # 输出: banana
11. 元组
元组是一个有序的不可变集合,使用圆括号定义。
- 常用操作:
- 访问元素:
[] - 解包:将元组中的元素赋值给变量
- 访问元素:
point = (10, 20) x, y = point print(x, y) # 输出: 10 20
12. 字典
字典是一个无序的键值对集合,使用大括号定义,键和值通过冒号 : 分隔。
- 常用操作:
- 添加或更新键值对:
dict[key] = value - 删除键值对:
del dict[key] - 访问值:
dict[key]
- 添加或更新键值对:
person = {"name": "Alice", "age": 25}
person["age"] = 26
print(person["name"]) # 输出: Alice
13. 集合
集合是一个无序的不重复元素集合,使用大括号定义。
- 常用操作:
- 添加元素:
add() - 删除元素:
remove(),discard() - 集合运算:交集、并集、差集
- 添加元素:
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits)
14. 公共操作
公共操作包括序列和集合类型的常见操作。
- 长度:
len()返回序列或集合的元素个数。 - 最大值/最小值:
max()和min()返回序列中的最大和最小值。 - 排序:
sorted()返回排序后的序列。 - 枚举:
enumerate()返回枚举对象,通常在for循环中使用。
numbers = [3, 1, 4, 1, 5] print(len(numbers)) # 输出: 5 print(max(numbers)) # 输出: 5 print(sorted(numbers)) # 输出: [1, 1, 3, 4, 5]
15. 推导式
推导式是一种简洁的创建序列或集合的方式。
- 列表推导式:用于创建列表。
- 字典推导式:用于创建字典。
- 集合推导式:用于创建集合。
# 列表推导式 squares = [x**2 for x in range(5)] print(squares) # 输出: [0, 1, 4, 9, 16]
16. 函数一
函数是执行特定任务的代码块,使用 def 关键字定义。
- 定义函数:通过
def关键字定义函数。 - 参数和返回值:函数可以接收参数并返回值。
def greet(name):return "Hello, " + nameprint(greet("Alice"))
17. 函数二
函数的高级特性包括默认参数、关键字参数和可变长度参数。
- 默认参数:为参数提供默认值。
- 关键字参数:通过参数名传递参数。
- 可变长度参数:使用
*args和**kwargs接受任意数量的位置参数和关键字参数。
def greet(name, greeting="Hello"):return greeting + ", " + nameprint(greet("Alice"))
print(greet("Alice", "Hi"))
18. 函数三
函数的进阶特性包括匿名函数和闭包。
- 匿名函数:使用
lambda关键字定义匿名函数。 - 闭包:内部函数可以访问外部函数的变量。
# 匿名函数
square = lambda x: x**2
print(square(4)) # 输出: 16# 闭包
def outer_func(msg):def inner_func():print(msg)return inner_funchello_func = outer_func("Hello")
hello_func() # 输出: Hello
19. 文件操作
Python提供了多种方式来处理文件操作,如读取和写入文件。
- 打开文件:
open()函数用于打开文件。 - 读取文件:
read()读取整个文件,readline()读取一行,readlines()读取所有行。 - 写入文件:
write()将数据写入文件。 - 关闭文件:
close()关闭文件。
with open("example.txt", "w") as file:file.write("Hello, World!")with open("example.txt", "r") as file:content = file.read()print(content)
20. 面向对象基础
面向对象编程(OOP)是将数据和操作封装在对象中的编程方式。
- 类和对象:类是对象的蓝图,使用
class关键字定义,实例化类创建对象。 - 属性和方法:类的属性和方法定义了对象的状态和行为。
__init__方法:构造方法,用于初始化对象。
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):print("Woof!")dog = Dog("Rex", 5)
dog.bark() # 输出: Woof!
21. 面向对象-继承
继承是通过现有类创建新类的机制,新类可以继承父类的属性和方法。
- 子类:继承自父类,可以重写父类的方法或添加新方法。
- 多继承:一个类可以继承多个父类。
class Animal:def eat(self):print("Eating...")class Dog(Animal):def bark(self):print("Woof!")dog = Dog()
dog.eat() # 输出: Eating...
dog.bark() # 输出: Woof!
22. 面向对象-其他
面向对象编程中还包括封装、抽象和多态性等概念。
- 封装:将数据和方法封装在类中,控制对内部细节的访问。
- 抽象:通过接口和抽象类来定义行为,而不实现具体功能。
- 多态性:不同类的对象可以通过相同的接口调用不同的实现。
class Shape:def draw(self):raise NotImplementedError("Subclass must implement abstract method")class Circle(Shape):def draw(self):print("Drawing a circle")shape = Circle()
shape.draw() # 输出: Drawing a circle
23. 异常
异常处理用于捕获和处理运行时错误,以防止程序崩溃。
- 捕获异常:使用
try和except块捕获异常。 finally块:无论是否发生异常,finally块的代码总是会执行。- 自定义异常:可以创建自定义异常类,继承自
Exception。
try:result = 10 / 0
except ZeroDivisionError:print("Cannot divide by zero")
finally:print("Execution complete")
24. 模块和包
模块和包用于组织和管理代码,模块是一个Python文件,包是包含模块的目录。
- 导入模块:使用
import导入模块。 - 自定义模块:将Python代码保存在
.py文件中,可以作为模块导入。 - 标准库:Python提供了丰富的标准库,可以直接导入使用。
import math print(math.sqrt(16)) # 输出: 4.0
25. 包
包是包含多个模块的目录,通过层次化组织代码,包中必须包含 __init__.py 文件。
- 创建包:将模块放入目录中,并添加
__init__.py文件。 - 导入包:使用
import导入包中的模块或子包。
# 目录结构 # mypackage/ # ├── __init__.py # ├── module1.py # └── module2.pyfrom mypackage import module1
这些知识点构成了Python编程的基础,掌握这些内容将为更高级的编程打下坚实的基础。
相关文章:
Python基础知识点--总结
1. 注释 注释用于提高代码的可读性,在代码中添加说明文字,使代码更容易理解。 单行注释:使用 # 符号开头,注释内容在符号之后的行内。多行注释:使用三引号( 或 """)包裹注释内…...
高效记录与笔记整理的策略:工具选择、结构设计与复习方法
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
Request重复读的问题
换了新工作都有时间写文章,每天也是加班到很晚,也不是工作内容多,主要是还是效率低,要考虑多干的很心累。 一、关于request重复读的问题,从源码的角度来分析 为什么他不能重复读 跳转 再看源码前可能需要一些基础的…...
Linux学习第60天:Linux驱动开发的一些总结
今天是Linux驱动开发的最后一个章节,题目中标明是60天完成的,其实在实际学习及笔记的整理中不止是60天。中间有过断更,有时断更的时间还是挺长的。这是在整个Linux驱动开发学习中最不满意的地方。 题目为Linux学习,其实这个题目有…...
OPP || 继承和抽象类 || 访问控制
OPP面向对象程序设计 数据抽象:类的接口声明和定义实现分离继承:类构成的(树型)层次关系动态绑定:忽略相似类型区别,用统一的方式使用 基类派生类: 继承:类名 冒号 访问说明符 …...
蓝牙音视频远程控制协议(AVRCP) command跟response介绍
零.声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Trans…...
MySQL的InnoDB存储引擎中的Buffer Pool机制
目录 Buffer Pool 简介 定义 为什么需要Buffer Pool 图解重点知识 Buffer Pool 的组成 数据页(Data Pages) 索引页(Index Pages) 插入缓冲页(Insert Buffer Pages) undo页(Undo Pages&a…...
5. MongoDB 文档插入、更新、删除、查询
1. 插入文档 文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。 BSON是一种类似JSON的二进制形式的存储格式,是Binary JSON的简称。常用的插入文档方法包括: db.collection.insertOne():插入单个文档db.collection.inse…...
⌈ 传知代码 ⌋ DETR[端到端目标检测]
💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...
Oracle之触发器
简介 触发器在数据库里以独立的对象存储,他与存储过程不同的是,存储过程通过其他程序来启动运行或直接启动运行而触发器是由一个事件来启动运行,即触发器是当某个事件发生时自动式运行。并企,触发器不能接收参数。所以运行触发器…...
从零搭建微前端架构:解耦大型项目的终极方案
随着前端应用的复杂度不断提升,单体前端应用(Monolithic Frontend)的维护和扩展难度也日益增加。微前端(Micro-Frontend)作为一种新兴架构理念,旨在将大型前端项目拆分为多个独立、可独立部署的微应用,从而提升项目的可维护性和灵活性。这篇文章将带你从零开始搭建一个微…...
24/8/17算法笔记 MPC算法
MPC算法,在行动前推演一下 MPC(Model Predictive Control,模型预测控制)是一种先进的控制策略,它利用未来预测模型来优化当前的控制动作。MPC的核心思想是,在每一个控制步骤中,都基于当前系统状…...
GROUP_CONCAT 用法详解(Mysql)
GROUP_CONCAT GROUP_CONCAT 是 MySQL 中的一个聚合函数,用于将分组后的多行数据连接成一个单一的字符串。 通常用于将某个列的多个值合并到一个字符串中,以便更方便地显示或处理数据。 GROUP_CONCAT([DISTINCT] column_name[ORDER BY column_name [ASC…...
Golang httputil 包深度解析:HTTP请求与响应的操控艺术
标题:Golang httputil 包深度解析:HTTP请求与响应的操控艺术 引言 在Go语言的丰富标准库中,net/http/httputil包是一个强大的工具集,它提供了操作HTTP请求和响应的高级功能。从创建自定义的HTTP代理到调试HTTP流量,h…...
SQLALchemy 分页
SQLALchemy 分页 1. 使用SQLAlchemy的`slice`和`offset`/`limit`SQLAlchemy 1.4及更新版本SQLAlchemy 1.3及更早版本使用第三方库注意事项在Web开发中,分页是处理大量数据时一个非常重要的功能。SQLAlchemy是一个流行的Python SQL工具包和对象关系映射(ORM)库,它允许开发者…...
快速上手体验MyPerf4J监控springboot应用(docker版快速开始-本地版)
使用MyPerf4J监控springboot应用 快速启动influxdb时序数据库日志收集器telegrafgrafana可视化界面安装最终效果 项目地址 项目简介: 一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具。 价值 快速定位性能瓶颈快速定位故障原因 快速启动 监控本地应用 idea配…...
C语言 之 strlen、strcpy、strcat、strcmp字符串函数的使用和模拟实现
文章目录 strlen的使用和模拟实现函数的原型strlen模拟实现:方法1方法2方法3 strcpy的使用和模拟实现函数的原型strcpy的模拟实现: strcat的使用和模拟实现函数的原型strcat的模拟实现: strcmp的使用和模拟实现函数的原型strcmp的模拟实现 本…...
CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0002)
DoIP车辆识别请求(payload type 0x0002)报文的格式为: /******************************************************** +--------+--------+--------+--------+ |version | inVer | type | +--------+--------+--------+--------+ | length …...
数据接入教学
数据接入教学 1、开通外部网络策略2、检查本地防火墙策略3、测试网络连通性4、工具抓包命令5、本地测试发送与监听 1、开通外部网络策略 保证外部网络联通、保证内部防火墙开通策略(可以关闭进行测试) 2、检查本地防火墙策略 关闭进行测试 停止firewa…...
炒作将引发人工智能寒冬
我们似乎经常看到人工智能的进步被吹捧为机器真正变得智能的一大飞跃。我将在这里挑选其中的一个例子,并确切解释为什么这种态度会为人工智能的未来埋下隐患。 这很酷,这是一个非常困难且非常具体的问题,这个团队花了3 年时间才解决。他们一定…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
