news 2026/3/26 12:26:53

python3语法学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python3语法学习

变量定义

left, right = 0, len(nums) - 1

变量运算

运算符描述示例 (a=10, b=3)

/除(结果始终为浮点数)a / b3.3333...

%取模(返回余数)a % b1

**幂运算(指数)a ** b1000

//整除(向下取整)a // b3

range:

1. 语法格式

range共有三种调用方式:

  1. range(stop):生成从 0 开始、到stop结束(不包含stop)的序列。

  2. range(start, stop):生成从start开始、到stop结束(不包含stop)的序列。

  3. range(start, stop, step):生成从start开始、到stop结束、步长为step的序列。


2. 参数说明

  • start(可选):序列的起始数值,默认为 0。

  • stop(必选):序列的终止数值。注意:生成的序列不包括这个值。

  • step(可选):步长,即相邻两个数之间的间隔,默认为 1。


3. 代码示例

示例 C:指定步长(三参数)
for i in range(0, 10, 2): print(i) # 输出:0, 2, 4, 6, 8
示例 D:递减序列(负步长)
for i in range(5, 0, -1): print(i) # 输出:5, 4, 3, 2, 1

💡 进阶小知识

  • 内存优化:在 Python 3 中,range()返回的是一个“迭代对象”(Iterator),它不会在内存中真的创建一个包含所有数字的列表,而是在循环到哪一步时才计算出哪一个数。这使得它处理极大的范围(如range(1000000))时非常节省内存。

函数(Function):代码的逻辑单元

1. 基本语法结构
def 函数名(参数1: 类型, 参数2: 类型 = 默认值) -> 返回类型: """ 这里是文档字符串(Docstring),描述函数的功能。 """ # 逻辑代码 结果 = 参数1 + 参数2 return 结果
2. 核心语法要点
  • def关键字:声明开始定义函数。

  • 参数 (Arguments)

    • 位置参数:调用时按顺序传入。

    • 默认参数:如参数2: 类型 = 默认值,如果调用时不传,就用默认值。

  • 类型注解 (Type Hints):如: int-> float,这不是强制的,但在工程中能极大提高代码可读性,防止传错数据。

  • 返回类型也是不一定有的,因为有些函数不一定需要return

  • 返回值 (return):函数执行完后交出的“果实”。如果没有写return,函数默认返回None

3. 示例:相机内参转换函数
def convert_pixel_to_mm(pixel_coord: int, focal_length: float, depth: float) -> float: """ 根据小孔成像原理将像素坐标转换为物理毫米坐标 """ if focal_length == 0: return 0.0 # 公式:真实距离 = (像素偏移 * 深度) / 焦距 mm_coord = (pixel_coord * depth) / focal_length return mm_coord # 调用函数 x_mm = convert_pixel_to_mm(320, 600.02, 0.5) print(f"转换后的物理坐标为: {x_mm} mm")

类(Class):对象的蓝图

类是一种更高级的组织形式。它把**数据(属性)处理数据的函数(方法)**打包在一起。

1. 基本语法结构
class 类名: def __init__(self, 初始参数): """ 构造方法:创建对象时自动执行,用于给对象“贴标签”(初始化属性)。 """ self.属性1 = 初始参数 def 方法名(self, 其他参数): """ 实例方法:第一个参数必须是 self。 """ # 可以通过 self 访问类内部的属性 return self.属性1 + 其他参数
2. 核心语法要点
  • __init__方法:它是类的“初始化办公室”。你希望这个类一诞生就拥有的数据(如机械臂 IP、模型路径),都放在这里。

  • self参数(极其重要)

    • 它代表实例化的那个对象本身

    • 你可以把它想象成“我的”。self.ip就是“我的 IP”。

    • 在类内部的所有函数(方法)中,第一个参数都必须是self,这样它们才能互相沟通数据。

  • 实例化:类只是图纸,bot = RobotControl()才是根据图纸盖出来的房子。

3. 示例:机械臂控制类
class ArmHandler: def __init__(self, ip_address: str, home_pos: list): """初始化机械臂的连接信息和安全位置""" self.ip = ip_address self.home_joints = home_pos self.is_connected = False print(f"系统:已记录机械臂 {self.ip} 的配置") def connect(self): """模拟连接机械臂""" # 这里会写具体的 SDK 连接代码 self.is_connected = True print(f"系统:成功连接到 {self.ip}") def move_to_safe(self): """将机械臂移动到预设的安全位置""" if self.is_connected: print(f"动作:正在移动到 Home 点 {self.home_joints}") else: print("错误:机械臂未连接,无法移动") # 使用类 # 1. 实例化 my_bot = ArmHandler("192.168.0.10", [0, -45, 90, 0, 0, 0]) # 2. 调用方法 my_bot.connect() my_bot.move_to_safe()

三、 类与函数的区别与协作

特性函数 (Function)类 (Class)
本质一个工具/动作一个实体/管理者
状态保存执行完就销毁,不记得上次发生了什么属性会一直保存,直到对象被销毁
主要用途纯逻辑计算(如坐标转换、数学公式)复杂的设备管理(如相机、机械臂、AI模块)
调用方式直接调用func()先实例化obj = Class(),再调用obj.method()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 4:50:42

Docker Healthcheck指令监控GLM-4.6V-Flash-WEB服务状态

Docker Healthcheck 指控 GLM-4.6V-Flash-WEB 服务状态 在如今的 AI 应用部署中,一个常见的尴尬场景是:模型服务看似“运行正常”,进程没挂、端口也开着,但一旦发起请求,却迟迟无响应——这往往是因为显存泄漏、推理卡…

作者头像 李华
网站建设 2026/3/25 17:04:52

多模态数据落地难题全解析,Dify格式规范如何破局?

第一章:多模态数据落地难题全解析,Dify格式规范如何破局?在人工智能应用快速演进的当下,多模态数据(文本、图像、音频、视频等)的融合处理成为关键挑战。企业面临的核心问题不仅在于数据类型的多样性&#…

作者头像 李华
网站建设 2026/3/25 17:25:39

面试被问:OOM类型有哪些?怎么答?

面试官:OOM类型有哪些?你:就是老年代放不下了嘛!面试官:等消息吧!OOM(Out Of Memory) 错误有多种类型,每种类型对应不同的内存区域或触发场景。以下是常见的 OOM 类型及其…

作者头像 李华
网站建设 2026/3/25 13:42:02

GitHub镜像网站支持GLM-4.6V-Flash-WEB私有仓库镜像

GitHub镜像网站支持GLM-4.6V-Flash-WEB私有仓库镜像 在AI模型日益“重载化”的今天,一个现实问题摆在许多开发者面前:明明看到一款强大的多模态模型发布,却因为下载不动、跑不起来、部署不了而只能望洋兴叹。尤其是在国内网络环境下&#xff…

作者头像 李华
网站建设 2026/3/23 7:16:43

从日志到修复全过程:Dify中Flask-Restx错误处理机制深度解析

第一章:从日志到修复全过程:Dify中Flask-Restx错误处理机制深度解析在Dify平台的API开发中,Flask-Restx作为核心框架承担着接口定义与请求调度职责,其内置的错误处理机制直接影响系统的可观测性与稳定性。当异常发生时&#xff0c…

作者头像 李华
网站建设 2026/3/23 22:04:51

Chromedriver下载地址不稳定?改用GLM-4.6V-Flash-WEB识别动态网页内容

GLM-4.6V-Flash-WEB:用视觉智能替代 Chromedriver 的新范式 在企业自动化流程日益复杂的今天,一个看似不起眼的技术问题——“Chromedriver 下载失败”——却频繁出现在 CI/CD 日志中,成为不少工程师心头之痛。尤其是在国内网络环境下&#x…

作者头像 李华