Python 实现阿里滑块全攻略

阿里划块技术为开发者提供了高精度的视觉分割能力,而 Python 作为一种简洁高效的编程语言,可以轻松调用阿里划块接口,实现各种场景下的图像分割需求。

Python 调用阿里云分割抠图 - 商品分割接口的步骤如下:首先,开通分割抠图服务;然后,获取真实 AK 信息;接着,添加依赖pip install aliyun-python-sdk-imageseg==1.1.8;最后,使用以下 Python 代码进行调用。

 

#coding=utf-8

from aliyunsdkcore.client import AcsClient

from aliyunsdkcore.request import CommonRequest

from aliyunsdkcore.auth.credentials import AccessKeyCredential

from aliyunsdkcore.auth.credentials import StsTokenCredential

credentials = AccessKeyCredential('<your-access-key-id>', '<your-access-key-secret>')

# use STS Token

# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')

client = AcsClient(region_id='cn-shanghai', credential=credentials)

request = CommonRequest()

request.set_accept_format('json')

request.set_domain('imageseg.cn-shanghai.aliyuncs.com')

request.set_method('POST')

request.set_protocol_type('https') # https | http

request.set_version('2019-12-30')

request.set_action_name('SegmentCommodity')

request.add_query_param('ImageURL', "图片地址url")

response = client.do_action(request)

print(str(response, encoding = 'utf-8'))

除了商品分割,阿里云的 AMQP 也可以在 Python3.6 中进行操作。阿里云的 AMQP 完全兼容开源社区的 AMQP,使用过程中只需要在创建连接阶段参考官方示例配置连接信息,之后的使用与开源社区 AMQP 使用完全一致,使用的 SDK 也是开源社区的 SDK:pika。

Python 与阿里划块的结合在电子商务、零售、泛文娱、个人应用等多种场景中都具有广泛的应用价值。例如,在电子商务中,可以通过商品分割接口快速生成透明素材,提高商品展示效果;在泛文娱领域,可以对图像进行高精度分割,为创意设计提供更多可能性。总之,Python 与阿里划块的结合为开发者带来了强大的工具和丰富的应用场景。

二、调用阿里云分割抠图接口

(一)开通与准备

开通分割抠图服务可以参考阿里云官方文档的具体步骤进行操作。一般来说,首先需要登录阿里云官网,进入智能视觉开放平台。在能力广场的分割抠图类目下,找到所需的服务,如商品分割、人体分割或通用分割等。对于不同的分割需求,可以先试用服务,满意后再进行开通。

获取真实 AK 信息也有特定的流程。点击控制台个人头像的 AccessKey 管理,按照提示进行操作即可获取到 AccessKey ID 和 AccessKey Secret。这两个信息在后续调用阿里云分割抠图接口时是必需的。

(二)代码实现与解析

以下是 Python 调用阿里云分割抠图接口的代码详细解析:

 

#coding=utf-8

from aliyunsdkcore.client import AcsClient

from aliyunsdkcore.request import CommonRequest

from aliyunsdkcore.auth.credentials import AccessKeyCredential

from aliyunsdkcore.auth.credentials import StsTokenCredential

credentials = AccessKeyCredential('<your-access-key-id>', '<your-access-key-secret>')

# 使用 STS Token 的方式,可根据实际情况选择

# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')

client = AcsClient(region_id='cn-shanghai', credential=credentials)

request = CommonRequest()

request.set_accept_format('json')

request.set_domain('imageseg.cn-shanghai.aliyuncs.com')

request.set_method('POST')

request.set_protocol_type('https') # https 或 http

request.set_version('2019-12-30')

request.set_action_name('SegmentCommodity')

request.add_query_param('ImageURL', "图片地址url")

response = client.do_action(request)

print(str(response, encoding = 'utf-8'))

这段代码首先导入了必要的模块,包括用于与阿里云服务进行交互的AcsClient、CommonRequest以及用于认证的AccessKeyCredential等。

通过AccessKeyCredential设置了访问阿里云服务的凭证,即 AccessKey ID 和 AccessKey Secret。

创建AcsClient对象时,指定了区域为cn-shanghai,这是阿里云服务的一个特定区域。

接着创建CommonRequest对象,设置请求的格式为json,指定域名、方法、协议类型和版本号等。

通过set_action_name设置要调用的具体服务为SegmentCommodity,即商品分割接口。

最后,通过add_query_param添加图片地址参数,并调用client.do_action(request)发送请求,获取响应后打印出来。

(三)运行结果与参考

运行上述代码后,会得到一个响应结果,这个结果通常是一个 JSON 格式的数据。其中包含了分割后的图像地址等信息。如果成功,就可以通过这个地址获取到分割后的图像。

参考链接可以包括阿里云开发者社区中关于分割抠图的文章,如 “基于 PYTHON 调用阿里云分割抠图 - 商品分割接口” 等,这些文章提供了更详细的步骤和示例,以及一些常见问题的解决方案。同时,阿里云的官方文档也是非常重要的参考资源,它提供了关于分割抠图服务的详细介绍、使用方法和技术支持等信息。

三、利用阿里划块进行图像分割

(一)图像分割概念

图像分割是将数字图像划分成多个区域的过程,每个区域具有一定的特征或属性。在利用阿里划块进行图像分割时,可以通过滑块技术将图像划分成小块。滑块技术通过将固定大小的窗口在图像上滑动,以此来获取不同位置的小块。这种方法可以看作是一种简单的图像分割方法,能够方便地对图像进行分析、处理或者传输。

(二)相关库介绍

在利用阿里划块进行图像分割时,需要用到一些 Python 库来处理图像。OpenCV 是一个用于计算机视觉的库,提供了许多图像处理和分析的功能,比如读取图像、显示图像等。NumPy 是一个用于数值计算的库,可以方便地处理多维数组,在图像分割中常用于存储和操作图像数据。Matplotlib 是一个用于绘图的库,可以帮助我们显示图像分割的结果。

(三)代码示例与序列图

以下是一个简单的 Python 代码示例,演示了如何使用滑块技术结合阿里划块进行图像分割,并显示分割后的小块图片。

 

import cv2

import numpy as np

# 读取图片,假设从阿里划块获取的图像地址为 image_url

image = cv2.imread(image_url)

# 定义滑块大小,可根据实际需求调整

block_size = 100

# 获取图像尺寸

height, width, _ = image.shape

# 分割图像

for i in range(0, height, block_size):

for j in range(0, width, block_size):

block = image[i:i+block_size, j:j+block_size]

cv2.imshow('Block', block)

cv2.waitKey(0)

cv2.destroyAllWindows()

在这段代码中,首先读取从阿里划块获取的图片,然后定义了滑块的大小为 100x100 像素。接下来,遍历整个图像,通过使用 numpy 数组切片的方式,获取每个小块,并显示出来。

下面是一个使用 mermaid 语法中的 sequenceDiagram 标识的序列图,展示了代码中的执行过程:

sequenceDiagram

participant User

participant Code

participant OpenCV

participant NumPy

participant Matplotlib

User->>Code: 读取阿里划块获取的图片

Code->>OpenCV: imread ()

Code->>NumPy: shape ()

Code->>OpenCV: imshow ()

OpenCV->>Matplotlib: 显示图像

四、Python 滑动块实现

(一)整体流程

在 Python 中实现滑动块功能,整体流程包括准备工作和实际实现过程。准备工作主要包括导入相关库、创建滑动块的容器以及定义滑动块的样式。实际实现过程则涵盖绑定事件、处理滑动过程中的逻辑以及获取滑动结果。

(二)准备工作详解

  1. 导入相关库

实现 Python 滑动块功能首先需要导入相关的库来支持滑动块的实现。代码如下:

 

import tkinter as tk

from tkinter import ttk

  1. 创建容器

创建一个滑动块的容器,即一个窗口,用于显示滑动块。代码如下:

 

root = tk.Tk()

root.title("Python 滑动块")

  1. 定义样式

使用 ttk.Scale 创建一个滑动块,并指定其取值范围为 0 到 100,方向为水平。代码如下:

 

slider = ttk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)

slider.pack()

(三)功能实现步骤

  1. 绑定事件

为了在滑动过程中响应用户的操作,需要绑定事件。代码如下:

 

def on_slider_change(event):

value = slider.get()

print(value)

slider.bind("<B1-Motion>", on_slider_change)

上述代码中,定义了一个名为 on_slider_change 的函数,该函数在滑动块的值发生变化时被调用。在该函数中,通过 slider.get() 获取当前滑动块的值,并打印出来。

2. 处理逻辑

在滑动过程中,可以根据具体需求处理相应的逻辑。例如,可以根据滑动块的值进行不同的操作。

3. 获取结果

获取滑动块的结果,以便后续处理。代码如下:

 

result = ttk.Label(root, text="滑动结果:")

result.pack()

def on_slider_release(event):

value = slider.get()

result["text"] = "滑动结果:" + str(value)

slider.bind("<ButtonRelease-1>", on_slider_release)

创建了一个标签 result 用于显示滑动块的结果。在 on_slider_release 函数中,获取滑动块的值,并将其更新到标签中。

(四)完整代码与甘特图

  1. 完整代码示例
 

import tkinter as tk

from tkinter import ttk

root = tk.Tk()

root.title("Python 滑动块")

slider = ttk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)

slider.pack()

def on_slider_change(event):

value = slider.get()

print(value)

slider.bind("<B1-Motion>", on_slider_change)

result = ttk.Label(root, text="滑动结果:")

result.pack()

def on_slider_release(event):

value = slider.get()

result["text"] = "滑动结果:" + str(value)

slider.bind("<ButtonRelease-1>", on_slider_release)

root.mainloop()

  1. 甘特图展示实现过程
 

title 实现 Python 滑动块

dateFormat YYYY-MM-DD

section 准备工作

导入相关库 :done,2022-01-01, 1d

创建滑动块的容器 :done,2022-01-01, 1d

定义滑动块的样式 :done,2022-01-02, 1d

section 实现滑动块功能

绑定事件 :done,2022-01-02, 1d

处理滑动过程 :active,2022-01-03, 1d

获取结果 :2022-01-04, 1d

五、AI 绘图中的阿里划块应用

(一)开通服务与获取密钥

要开通阿里大模型服务,可以访问阿里云的相关页面,如阿里大模型文档地址。在这里,可以按照文档中的步骤进行操作。一般来说,首先需要注册并登录阿里云账号,然后在对应的服务页面找到阿里大模型服务并申请开通。

获取 accesskey 的方法通常是在阿里云控制台中进行操作。具体步骤如下:进入阿里云控制台 API 密钥管理页面,在这里可以创建新的 API 密钥,获取到的 accesskey 将用于在 Python 代码中进行身份验证和访问阿里大模型服务。

(二)相关依赖安装

安装 dashscope 的步骤非常简单。只需要在命令行中执行以下命令:pip install dashscope。这个命令会自动下载并安装 dashscope 库及其所需的依赖项。安装完成后,就可以在 Python 代码中导入 dashscope 库来使用阿里大模型进行 AI 绘图了。

(三)代码编写与运行结果

以下是实现 AI 绘图的 Python 代码:

 

import os

from http import HTTPStatus

from urllib.parse import urlparse, unquote

from pathlib import Path

from pathlib import PurePosixPath

import requests

import dashscope

# 阿里 SD,500 张,用完需再申请

# https://help.aliyun.com/zh/dashscope/developer-reference/getting-started-with-stable-diffusion-models?spm=5176.28197632.0.0.97d87e06OPIVDX\u0026disableWebsiteRedirect=true

dashscope.api_key = 'your_access_key'

# 指定图片所在目录和保存目录

save_dir = './tmp/'

# 创建保存目录

os.makedirs(save_dir, exist_ok=True)

def generate_and_save_images(prompt, n, size, save_path):

rsp = dashscope.ImageSynthesis.call(model=dashscope.ImageSynthesis.Models.wanx_v1,

prompt=prompt,

n=n,

size=size)

if rsp.status_code == HTTPStatus.OK:

print(rsp.output)

print(rsp.usage)

for result in rsp.output.results:

file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]

save_file_path = Path(save_path) / file_name

with open(save_file_path, 'wb+') as f:

f.write(requests.get(result.url).content)

else:

print('Failed, status_code: %s, code: %s, message: %s' %

(rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':

prompt = "a beautiful landscape"

n = 4

size = '1024*1024'

save_path = os.path.join(save_dir)

generate_and_save_images(prompt, n, size, save_path)

运行这段代码后,可以快速实现简易的 AI 绘图工具,生成的图片会保存在指定的目录中。运行结果展示如下图所示:[此处可插入生成的图片示例]。通过这段代码,我们可以看到 Python 结合阿里划块技术在 AI 绘图领域的强大应用,只需要简单的几行代码,就可以根据文本描述生成高质量的图片。

六、语句块划分方法

(一)语句块概念

在 Python 中,语句块是由一组相关的语句组成的代码段。它可以包含多个语句,用于执行特定的任务或实现特定的功能。语句块通常与控制结构(如条件语句、循环语句等)一起使用,以控制程序的流程。例如,在一个条件语句中,满足条件时执行的语句就构成了一个语句块。

(二)缩进语法

Python 使用缩进来划分语句块。缩进是指在代码行的开头添加空格或制表符,以表示代码的层次结构。通常,同一层次的代码具有相同的缩进量。例如:

 

if condition:

# 这里是一个语句块,因为它在 if 语句的条件成立时执行

statement1

statement2

else:

# 这里是另一个语句块,当条件不成立时执行

statement3

statement4

在上述代码中,通过缩进清晰地划分了不同的语句块。缩进的数量没有严格的规定,但通常使用四个空格作为一个缩进级别。这种缩进方式使得代码更加清晰易读,并且有助于避免因大括号的使用不当而导致的错误。

(三)花括号的使用

在 Python 中,花括号主要用于创建字典和集合。例如:

 

# 创建一个字典

person = {"name": "John", "age": 30, "city": "New York"}

# 创建一个集合

fruits = {"apple", "banana", "cherry"}

然而,花括号并不常用于划分语句块。与其他编程语言不同,Python 使用缩进来划分语句块,而不是花括号。这是因为使用花括号可能会导致代码的可读性降低,并且容易引起混淆。此外,不同的程序员可能会使用不同的花括号风格,这也会增加代码的维护难度。

(四)注释的运用

注释在 Python 中起着非常重要的作用。它们可以用于解释代码的功能、目的和实现方式,提高代码的可读性和可维护性。在 Python 中,有两种主要的注释类型:单行注释和多行注释。

单行注释以 “#” 开头,后面跟着注释内容。例如:

 

# 这是一个单行注释

print("Hello, World!")

多行注释使用三个单引号或三个双引号将注释内容括起来。例如:

 

'''

这是一个多行注释

可以包含多行内容

'''

print("Hello, World!")

注释的使用规则如下:

  1. 注释应该简洁明了,能够准确地解释代码的功能和目的。
  1. 注释应该与代码保持同步,当代码发生变化时,注释也应该相应地进行更新。
  1. 注释不应该重复代码的功能,而应该提供额外的信息和解释。
  1. 在复杂的代码段中,可以使用注释来解释代码的逻辑和实现方式。

总之,正确使用注释可以提高代码的可读性和可维护性,使代码更加易于理解和修改。

七、综合应用与未来展望

(一)综合应用总结

Python 与阿里划块的结合在多个领域展现出了强大的综合应用能力。在图像分割方面,通过调用阿里云分割抠图接口,可以快速实现商品分割、人体分割等多种场景的高精度分割需求。结合相关的图像处理库如 OpenCV、NumPy 和 Matplotlib,能够对分割后的图像进行进一步的分析和展示。

在 AI 绘图领域,利用阿里划块技术和 Python 代码,可以轻松实现根据文本描述生成高质量图片的功能。通过安装 dashscope 库并获取 accesskey,开发者能够快速调用阿里大模型服务,为创意设计和图像生成提供了有力的工具。

此外,Python 中的滑动块功能也可以与阿里划块技术相结合,实现更加灵活的用户交互和参数调整。例如,在图像分割过程中,可以使用滑动块来调整分割的参数,如滑块大小、分割精度等,以满足不同的应用需求。

(二)未来展望

随着技术的不断发展,Python 与阿里划块的结合在未来有着广阔的应用潜力。在电子商务领域,更加精准的商品分割和图像生成技术可以提升商品展示效果,为消费者提供更加真实、直观的购物体验。同时,结合人工智能和大数据分析,可以实现个性化的商品推荐和营销策略。

在泛文娱领域,AI 绘图技术可以为游戏开发、影视制作等提供丰富的创意素材。通过不断优化算法和提高生成图像的质量,可以满足不同类型的创意需求,推动行业的创新发展。

在科研领域,Python 与阿里划块的结合可以为数据分析和可视化提供更加高效的工具。例如,在天文学、生物学等领域,可以利用图像分割技术对大量的图像数据进行分析和处理,为科学研究提供有力的支持。

总之,Python 与阿里划块的结合为开发者带来了强大的工具和丰富的应用场景。随着技术的不断进步和创新,相信在未来会有更多的领域受益于这种结合,为人们的生活和工作带来更多的便利和创新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469338.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尤雨溪都点赞的测试工具,你还不用?

尤雨溪都点赞的测试工具&#xff0c;你还不用&#xff1f; 想要一个跨浏览器兼容、无闪退的测试体验&#xff1f;Playwright来了&#xff01;它不仅支持主流浏览器自动化&#xff0c;还能轻松跨平台&#xff0c;让你轻松构建可靠的端到端测试。本文带你了解Playwright的功能亮点…

「IDE」VS2022插件 Visual Assist X 番茄助手介绍说明

✨博客主页何曾参静谧的博客📌文章专栏「IDE」集成开发环境📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制开发「Py」Py

qt QFrame详解

1、概述 QFrame是Qt框架中用于提供框架或边框的控件&#xff0c;主要用于在图形用户界面&#xff08;GUI&#xff09;中创建框架&#xff0c;并提供各种边框样式和功能。它是Qt中一个基础的容器类&#xff0c;也是许多基础控件的基类&#xff0c;可以被QLCDNumber、QToolBox、…

数据重塑:长宽数据转换【基于tidyr】

在数据分析和可视化过程中&#xff0c;数据的组织形式直接影响着我们能够进行的分析类型和可视化效果。这里简单介绍两种常见的数据格式&#xff1a;长格式&#xff08;Long Format&#xff09;和宽格式&#xff08;Wide Format&#xff09;&#xff0c;以及如何使用tidyr包进行…

【网络】应用层——HTTP协议

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是HTTP协议。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a;网络 &g…

【安全测试】sqlmap工具(sql注入)学习

前言&#xff1a;sqimap是一个开源的渗透测试工具&#xff0c;它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程。它有一个强大的检测引擎&#xff0c;许多适合于终极渗透测试的小众特性和广泛的开关&#xff0c;从数据库指纹、从数据库获 取数据到访问底层文件系…

【Android】webview常用方法和使用

文章目录 前言一、常见用法二、基础属性webView的常用方法WebViewClient的常用方法WebChromeClient的常用方法WebSettings的相关方法 三、加载流程和事件回调四、webview和JS之间的互相调用总结 五、参考链接 前言 最近项目又用到了webview&#xff0c;在回顾复习一次webview相…

可编辑PPT | 指挥中心系统建设与应用方案

本方案是一份全面的指挥中心系统建设与应用方案&#xff0c;涵盖了建设方案分析、指挥调度、远程通讯、会务管理等多个方面&#xff0c;旨在通过整合语音、视频监控、会议、指挥调度等多种技术&#xff0c;构建一个现代化、网络化、智慧化的城市指挥中心&#xff0c;以提高应对…

计算机新手练级攻略——善用搜索引擎

计算机学生新手练级攻略——善用搜索引擎 在信息爆炸的时代&#xff0c;计算机专业的学生如何有效地自我提升&#xff1f;答案可能就藏在一个简单却强大的工具——搜索引擎中。搜索引擎不仅是获取知识的入口&#xff0c;更是解决问题的利器。下面&#xff0c;我将分享一些善用搜…

vs2019托管调试助手 “ContextSwitchDeadlock“错误

错误描述 托管调试助手 "ContextSwitchDeadlock":“CLR 无法从 COM 上下文 0xd183e0 转换为 COM 上下文 0xd18328&#xff0c;这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长…

【ARM】MDK-烧录配置文件无权限访问

【更多软件使用问题请点击亿道电子官方网站】 1、 问题场景 客户代码编译正常、调试出现报错<Error: Flash Download failed - "Cortex-M4"> 仿真器识别正常&#xff0c;keil-Debug内显示相关信息、设备启动正常。 记录排查步骤&#xff0c;找到配置文件位…

【C语言刷力扣】66.加一

题目&#xff1a; 解题思路&#xff1a; 最初思路是打算将数组中的数提出来&#xff0c;加一&#xff0c;再放回另一数组中。后来发现数组最大长度100&#xff0c;而100位的数字太大了。 所有在数组上实现加一。 利用 carry 标记每一位是否进位&#xff0c;即该位数加 carry &a…

Docker使用docker-compose一键部署nacos、Mysql、redis

下面是一个简单的例子&#xff0c;展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。 1&#xff0c;准备好mysql、redis、nacos镜像 sudo docker pull mysql:8 && sudo docker pull redis:7.2 &&…

【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF)

一、 大语言模型的训练过程 预训练阶段&#xff1a;PT&#xff08;Pre training&#xff09;。使用公开数据经过预训练得到预训练模型&#xff0c;预训练模型具备语言的初步理解&#xff1b;训练周期比较长&#xff1b;微调阶段1&#xff1a;SFT&#xff08;指令微调/有监督微调…

YOLO即插即用---PConv

Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 论文地址&#xff1a; 1. 论文解决的问题 2. 解决问题的方法 3. PConv 的适用范围 4. PConv 在目标检测中的应用 5. 评估方法 6. 潜在挑战 7. 未来研究方向 8.即插即用代码 论文地址&#xff1a; …

Fortran安装(vscode+gcc+Python)

编写时间&#xff1a; 2024年11月7日 环境配置&#xff1a; gcc VScode Python 条件&#xff1a; Windows 10 x64 VMware虚拟机 前言 这是我出的第2个关于Fortran安装的教程&#xff0c;由于上一个方法&#xff08;你可以在本专栏里找到&#xff09;对储存空间的要求比较…

ModuleNotFoundError: No module named ‘_ssl‘ centos7中的Python报错

报错 ModuleNotFoundError: No module named ‘_ssl’ 解决步骤&#xff1a; 1.下载openssl wget https://www.openssl.org/source/openssl-3.0.7.tar.gz tar -zxvf openssl-3.0.7.tar.gz cd openssl-3.0.72.编译安装 ./config --prefix/usr/local/openssl make make install3…

TensorFlow|猫狗识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 要求&#xff1a; 了解model.train_on_batch()并运用了解tqdm&#xff0c;并使用tqdm实现可视化进度条 &#x1f37b; 拔高&#xff08;可选&#xff09;&…

Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式

此去经年&#xff0c;再难同游 —— 24.11.11 一、什么是设计模式 设计模式是一种编程套路&#xff0c;可以极大的方便程序的开发最常见、最经典的设计模式&#xff0c;就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发,我们称之为设计模…

【算法速刷(9/100)】LeetCode —— 42.接雨水

目录 自我解法 官方解法 解法一&#xff1a;动态规划、前后缀 解法二&#xff1a;单调栈 自我解法 这道题刚拿到的时候&#xff0c;第一时间的想法是将其想象成MC一样的方块世界&#xff0c;如何去生成水一样的去解决。后来发现有点复杂化了&#xff0c;因为题目只需要累计…