news 2026/6/2 1:53:16

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/6/1 19:32:58

C# P/Invoke调用GLM-4.6V-Flash-WEB底层C++接口实验

C# P/Invoke调用GLM-4.6V-Flash-WEB底层C接口实验 在工业质检、智能客服和教育辅助等场景中,越来越多的企业希望将先进的视觉语言模型(VLM)集成到现有的 .NET 生态系统中。然而,大多数开源多模态模型都基于 Python 和 PyTorch 构建…

作者头像 李华
网站建设 2026/6/1 19:33:17

CSDN官网技术博主都在用GLM-4.6V-Flash-WEB生成图文摘要

GLM-4.6V-Flash-WEB:轻量多模态模型如何重塑图文摘要生成 在内容爆炸的时代,技术博主每天面对的不只是写文章,更是与时间赛跑——配图要解释、架构图要说明、流程图要解读。而读者呢?他们希望一眼看懂重点,而不是逐行…

作者头像 李华
网站建设 2026/6/1 19:33:07

从卡顿到飞驰:Dify私有化集群性能优化全路径解析

第一章:从卡顿到飞驰:Dify私有化集群性能优化全路径解析在部署Dify私有化集群过程中,性能瓶颈常表现为API响应延迟、任务队列积压和前端加载卡顿。这些问题多源于资源配置不合理、服务间通信低效及缓存策略缺失。通过系统性调优,可…

作者头像 李华
网站建设 2026/6/1 19:33:08

Jupyter Notebook保存GLM-4.6V-Flash-WEB推理过程为HTML报告

Jupyter Notebook保存GLM-4.6V-Flash-WEB推理过程为HTML报告 在多模态AI模型快速落地的今天,一个现实问题摆在许多工程团队面前:如何高效验证视觉大模型的能力?又该如何向非技术背景的同事或客户清晰展示其推理效果? 截图拼接PPT早…

作者头像 李华
网站建设 2026/5/28 23:38:56

DISM++系统维护神器搭配AI?探索GLM-4.6V-Flash-WEB本地运行环境优化

DISM系统维护神器搭配AI?探索GLM-4.6V-Flash-WEB本地运行环境优化 在如今越来越多开发者尝试将大模型落地到本地设备的背景下,一个常被忽视的问题浮出水面:再先进的AI模型,也扛不住系统垃圾堆积、组件损坏或驱动冲突带来的“慢性死…

作者头像 李华