python3语法学习

变量定义

复制代码
left, right = 0, len(nums) - 1

变量运算

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

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

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

**幂运算(指数)a ** b 1000

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

  • 参数 (Arguments)

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

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

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

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

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

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

  • self 参数(极其重要)

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

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

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

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

3. 示例:机械臂控制类
python 复制代码
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()
相关推荐
企业智能研究6 小时前
什么是数据治理?数据治理对企业有什么用?
大数据·人工智能·数据分析·agent
阿里云大数据AI技术6 小时前
面向 Interleaved Thinking 的大模型 Agent 蒸馏实践
人工智能
ELI_He9996 小时前
Airflow docker 部署
运维·docker·容器
AI Echoes7 小时前
LangChain 非分割类型的文档转换器使用技巧
人工智能·python·langchain·prompt·agent
拜托啦!狮子7 小时前
安装和使用Homer(linux)
linux·运维·服务器
哔哔龙7 小时前
LangChain核心组件可用工具
人工智能
全栈独立开发者7 小时前
点餐系统装上了“DeepSeek大脑”:基于 Spring AI + PgVector 的 RAG 落地指南
java·人工智能·spring
liulilittle7 小时前
XDP VNP虚拟以太网关(章节:一)
linux·服务器·开发语言·网络·c++·通信·xdp
Sapphire~7 小时前
Linux-13 火狐浏览器书签丢失解决
linux
2501_941878747 小时前
在班加罗尔工程实践中构建可持续演进的机器学习平台体系与技术实现分享
人工智能·机器学习