函数和模式化——python
一、模块和包
将一段代码保存为应该扩展名为.py 的文件,该文件就是模块。Python中的模块分为三种,分别为:内置模块、第三方模块和自定义模块。
- 内置模块和第三方模块又称为库
- 内置模块,有 python 解释器自带,不用单独安装
- 第三方模块,需要下载后手动安装
- 如果内置模块和第三方模块没有需要的功能,就需要用户自己编写程序,将程序保存为.py 文件,即是自定义模块。
无论哪种模块都需要使用 import 调用后,才能在程序中调用其中的功能函数。
将功能近似的、关联较强的模块组织起来,形成一个目录,叫做包。
python中的包是模块包,文件名。包括:
- 一组模块
- _init_.py 文件
- 支持多层嵌套
- .py 程序文件中可以直接定义一些变量,函数和类
- 使用时,通过import 导入,如: import math
他们的关系如下:
包——> 模块 ——> 函数
二、函数
1、函数的定义函数的语法格式如下:
def 函数名( [ 次数1,参数2,…,参数n ] ):语句块[ return [ 返回值1,返回值2,…,返回值n] ]
2、函数的定义和调用
(1)def 为python保留字,用于定义函数,函数名的命名规则和变量一致;
(2)括号中是函数的参数,参数可以为空,此时,括号()不能省略,函数参数也可以是多个,多个参数之间有英文逗号隔开;
(3)语句块是函数体,可以对函数进行调用,完成函数的主要功能;
(4)retrun 是函数的返回保留字,当函数没有返回值时,return 保留字可以省略,函数有多个返回值时,在return 保留字后面,将多个返回值以英文逗号隔开;
#无返回值时省略return
def greet(name):print(f"Hello, {name}!")
result = greet("Alice") # 输出: Hello, Alice!
print(result) # 输出: None#单返回值
def add(a, b):return a + b
sum_result = add(3, 5) # sum_result = 8#多返回值
def calculate(a, b):add = a + bsub = a - breturn add, sub # 实际返回元组 (add, sub)result = calculate(10, 5)
print(result) # 输出: (15, 5)# 解包返回值
sum_result, diff_result = calculate(10, 5)
print(sum_result) # 输出: 15
print(diff_result) # 输出: 5
这里的解包返回值,大家不懂的话不要害怕,我在最后做了补充。
(5)函数的类型和函数的返回值类型相同,当返回值是多个时,函数的返回值是元组类型。
- 单返回值类型:若函数返回单个值(如
int
),则直接标注为对应类型。
def get_number() -> int:return 42
- 多返回值类型:若函数返回多个值(如
a, b
),Python 会将其转换为元组。此时返回值类型应标注为tuple[类型1, 类型2, ...]
。
def calculate(a: int, b: int) -> tuple[int, int]:return a + b, a - b # 实际返回 (int, int) 类型的元组
三、函数的参数
1、形参与实参
- 函数定义时,圆括号内参数列表的参数,不代表具体的数据,称为形参;
- 函数调用时,将具体的数据传递给形式参数,此时的参数称为实参。
- 根据参数的不同数据类型,将实参的值或者引用传递给形参。
- 当参数类型为不可变数据类型时,在函数内部直接修改形参的值不会影响实参;
- 但当参数类型为可变数据类型时,在函数内部使用下标或其他方式为其增加、删除元素或修改元素值时,修改后的结果是可以传递到函数之外的,即实参也会得到相应的修改。
2、必备参数、默认参数、可变参数和关键字参数
- 函数调用时,必须传递的参数,称为必备参数,也称必选参数;
- 函数定义时,设置了默认值的参数函数调用时,可以传递实参,也可以不传递参数,不传递时,参数取定义时的默认值,这种参数,称为默认参数,也称可选参数。
- 需要注意的是,必备参数必须在前面定义,其他参数在后面定义。
3、参数传递
- 在函数调用参数传递时,按位置形参和实参一一对应传递称为位置传递;
- 在函数调用参数传递时,按照参数的名称显式的传递,称为名称传递。
按位置传递,不需要给出参数的名称,但形参和实参的位置相同、类型相同,否则容易出错;按名称显式的传递参数,则不关心参数的前后顺序,在参数较多时,不容易混淆。
4、全局变量与局部变量
- 在函数外部定义的变量,称为全局变量;在函数内部定义的变量称为局部变量。
- 全局变量的生命周期是程序的整个运行周期,只有程序被关闭后全局变量才会被销毁并释放内存空间,因此,全局变量在整个程序中,都可以使用;
- 局部变量的生命周期是函数调用时间,函数调用结束返回后,局部变量就销毁并释放内存空间,因此局部变量的作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的。
5、匿名函数
当函数一次性使用,函数体语句较少,如只有一个表达式,为了节省内存中变量定义空间就不需要定义函数名,此时,可以定义匿名函数。名函数的语法格式是:
函数名 =lambda」参数]:返回值
匿名函数可以有0个或多个参数,但必须有返回值。匿名函数的调用和一般函数的调用相似可以单独使用,也可以作为表达式的一部分。
常见使用场景
(1)作为参数传递(如 sorted
, map
, filter
)
# 按字符串长度排序列表
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # 输出 ['date', 'apple', 'banana', 'cherry']# 过滤偶数
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出 [2, 4]# 对每个元素平方
squared = list(map(lambda x: x**2, numbers))
print(squared) # 输出 [1, 4, 9, 16, 25]
filter()函数在前面提过,过滤出满足条件的函数。
(2)快速定义简单逻辑
# 判断是否为偶数
is_even = lambda x: x % 2 == 0
print(is_even(4)) # True# 拼接字符串
greet = lambda name: f"Hello, {name}!"
print(greet("Alice")) # Hello, Alice!
(3)结合条件表达式
# 返回两数中的较大值
max_value = lambda a, b: a if a > b else b
print(max_value(5, 8)) # 8
四、补充:
解包返回值:
Python 中一种便捷的语法,用于将函数返回的多个值(通常是元组、列表等可迭代对象)直接拆分并赋值给多个变量。它的核心目的是让代码更简洁、可读性更强。
【例】假设有一个函数返回两个值:
def get_coordinates():x = 3y = 4return x, y # 实际返回的是元组 (3, 4)
不解包的情况:
直接获取返回值时,会得到一个元组:
coords = get_coordinates()
print(coords) # 输出 (3, 4)
print(coords[0]) # 输出 3(通过索引访问)
print(coords[1]) # 输出 4
解包的情况:
将元组中的值直接拆分为两个变量:
x, y = get_coordinates() # 解包赋值
print(x) # 输出 3
print(y) # 输出 4
解包具有灵活性:
(1)适用于任意可迭代对象
不仅是元组,列表、字符串等可迭代对象也可以解包:
def get_data():return ["Alice", 25, "Engineer"]name, age, job = get_data() # 解包列表
print(name) # Alice
(2)忽略不需要的值
用下划线 _
占位忽略不需要的返回值:
x, _ = get_coordinates() # 只要 x,忽略 y
print(x) # 3
(3)解包嵌套结构
甚至可以解包嵌套的返回值(如元组中的元组):
def nested_data():return (1, (2, 3))a, (b, c) = nested_data()
print(a, b, c) # 1 2 3
(4)使用 *
处理剩余值
用 * 变量名
接收剩余的所有值(返回列表):
def multiple_values():return 1, 2, 3, 4, 5first, *middle, last = multiple_values()
print(first) # 1
print(middle) # [2, 3, 4](中间的数值被封装为列表)
print(last) # 5
注意事项:
(1)变量数量必须匹配:
左侧变量数必须与返回值数量一致,否则会报错:
x, y, z = get_coordinates() # 错误!元组只有 2 个值,但尝试解包给 3 个变量
(2)返回值必须是可迭代对象:
如果函数返回单个值(非元组/列表等),尝试解包会报错:
def single_value():return 5a, b = single_value() # 错误!单个整数无法解包
相关文章:
函数和模式化——python
一、模块和包 将一段代码保存为应该扩展名为.py 的文件,该文件就是模块。Python中的模块分为三种,分别为:内置模块、第三方模块和自定义模块。 内置模块和第三方模块又称为库内置模块,有 python 解释器自带,不用单独安…...
LeetCode 1817 查找用户活跃分钟数
深入剖析 LeetCode 用户活跃分钟数统计问题 一、题目详情 给定用户在 LeetCode 的操作日志,日志以二维整数数组logs表示,其中每个logs[i][IDi, timei],意味着 ID 为IDi的用户在timei分钟时执行了某个操作。多个用户能够同时执行操作&#x…...
matlab从pytorch中导入LeNet-5网络框架
文章目录 一、Pytorch的LeNet-5网络准备二、保存用于导入matlab的model三、导入matlab四、用matlab训练这个导入的网络 这里演示从pytorch的LeNet-5网络导入到matlab中进行训练用。 一、Pytorch的LeNet-5网络准备 根据LeNet-5的结构图,我们可以写如下结构 import…...
网络:华为HCIA学习笔记:ICMP协议
ICMP(Internet Control Message Protocol)Internet控制消息协议 前言ICMPICMP重定向ICMP差错监测ICMP错误报告ICMP数据包格式ICMP消息类型和编码类型ICMP应用-PingICMP应用-Tracert 总结 前言 Internet控制消息协议ICMP (Internet Control Message Prot…...
导出为更清楚/高质量的图片(.png) | 在Word里面的visio图)
Visio | 将(.vsdx)导出为更清楚/高质量的图片(.png) | 在Word里面的visio图
此时大家在用Visio画完图直接复制到word里面后,如果后期需要重新保存高清图片,但是此时图片在word,是不是很多人会选择直接crtlA截图复制,这样出来的图又不清晰又小,完全不符合你导的审美,接下来跟着我&…...
算法设计学习8
实验目的及要求: 通过深入学习树(Tree)和二叉树(Binary Tree)这两种重要的数据结构,掌握它们的基本概念、性质和操作,提高对树形结构的理解和应用能力。通过本实验,学生将深化对树和…...
Dive into Deep Learning - 2.4. Calculus (微积分)
Dive into Deep Learning - 2.4. Calculus {微积分} 1. Derivatives and Differentiation (导数和微分)1.1. Visualization Utilities 2. Chain Rule (链式法则)3. DiscussionReferences 2.4. Calculus https://d2l.ai/chapter_preliminaries/calculus.html For a long time, …...
kotlin中const 和val的区别
在 Kotlin 中,const 和 val 都是用来声明常量的,但它们的使用场景和功能有所不同: 1. val: val 用于声明只读变量,也就是不可修改的变量(类似于 Java 中的 final 变量)。它可以是任何类型,包括…...
Webpack中loader的作用。
文章目录 前言1. 处理样式文件2. 处理 JavaScript 文件3. 处理其他文件总结 前言 在 Webpack 中,Loader 是用于对模块的源代码进行转换的工具,它能够将不同类型的文件(如 CSS、图片、字体、TypeScript 等)转换为有效的 JavaScrip…...
C++ 极简常用内容
C 极简常用内容 1. 类与对象 定义:封装数据(成员变量)和行为(成员函数)的自定义类型。 Demo: class Car { public:string brand;void drive() { cout << brand << " is moving." …...
如何在windows 环境、且没有显卡的情况下用python跑通从ModelScope下载的大模型的调用
文章目录 背景介绍源代码:安装调试过程1.设置第三方镜像源2.预先安装:3.在python中创建代码:4.最终修改程序,将device_map从“cuda”改成“auto”,大模型调用1.5B(1___5B)的5.最终跑出结果解释:示例&#x…...
MINIQMT学习课程Day10
开始获取股票数据课程的学习: 获取qmt账号的持仓情况后,我们进入下一步,如何获得当前账号的委托状况 还是之前的步骤,打开qmt,选择独立交易, 之后使用pycharm,编写py文件 导入包:…...
如何彻底关闭Windows 10中的Xbox游戏栏
一、打工人的困扰:不速之客“Game Bar” 在日常工作中,许多使用Windows 10的用户常常被一个不起眼却频频打扰的系统功能困扰,那就是“Xbox游戏栏”(Game Bar)。当你正在专注处理紧急的Excel表格或准备PPT汇报…...
26考研资料分享考研资料合集 百度网盘(仅供参考学习)
考研资料分享考研资料合集 百度网盘(仅供参考学习) 通过网盘分享的文件:2026考研英语数学政治最新等3个文件 链接1: https://pan.baidu.com/s/1JXBI9ROng4KAWHoaUHpkug?pwdjydb 提取码: jydb 链接2:https://pan.baidu.com/s/1a…...
59.基于ssm和vue学生考试成绩管理系统
目录 1.系统的受众说明 2.系统关键技术 2.1 java技术 2.2 MYSQL数据库 2.3 B/S结构 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2经济可行性 3.2 系统性能分析 3.3 系统功能分析 3.5系统流程分析 3.5.1登录流程 3.5.2注册流程 3.5.3添加信息流程 3.5.4删…...
常见的ETL工具分类整理
一、开源ETL工具 Kettle(Pentaho Data Integration)--Spoon 设计及架构:面向数据仓库建模的传统ETL工具。使用方式:C/S客户端模式,开发和生产环境需要独立部署,任务编写、调试、修改都在本地。底层架构…...
【leetcode100】数组中的第K个最大元素
1、题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,…...
markdown语法学习
三化markdown语法 研究对象系统化全局化结构化markdown语法富文本字体样式*斜体*,主题样式#,表格样式||,代码块样式,待办样式- [ ]样式之间互相协作,互不冲突 待办 斜体 加粗 标题 删除线 public class{ //代码块 …...
Linux_4
开始学习ssh工具 在做开发的时候,肯定不止一台服务器,那么假设每台服务器都是Linux服务器,要在服务器上操作就需要登入终端,即Terminal。ssh的作用就是可以通过一个服务器登陆上其他的服务器。 登陆到哪个服务器看到的就是哪个服务器的终端terminal。 ssh登陆 ssh user@…...
Netty——连接超时 与 断开重连
文章目录 1. 处理连接超时和断开重连的原因2. 处理连接超时和断开重连的方法2.1 处理连接超时2.1.1 步骤一:配置连接超时时间2.1.2 步骤二:监听连接结果 2.2 处理断开重连2.2.1 步骤一:监听连接断开事件2.2.2 步骤二:实现重连逻辑…...
linux 进程/线程设置核亲和性
1,线程绑定内核 #include <pthread.h> #include <stdio.h> #include <stdlib.h> // 定义一个函数,用于设置线程的CPU亲和性 void set_thread_affinity(pthread_t thread, int cpu_id) { cpu_set_t cpuset; int s; // 清空CPU集…...
前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)
文章目录 使用lodashjs库手动实现节流(通过判断之前设定的定时器setTimeout是否存在) 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…...
【MySQL基础-21】MySQL事务机制详解:原理、实现与最佳实践
在现代数据库系统中,事务机制是确保数据一致性和完整性的核心技术。MySQL作为最流行的开源关系型数据库之一,其事务实现机制对于开发者而言至关重要。本文将深入探讨MySQL的事务机制,包括核心概念、实现原理、隔离级别以及实际应用中的最佳实…...
Transformer+BO-SVM时间序列预测(Matlab)
TransformerBO-SVM时间序列预测(Matlab) 目录 TransformerBO-SVM时间序列预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 普通的单变量时序已经用腻了,审稿人也看烦了,本期推出一期高创…...
Python循环控制语句
1. 循环类型概述 Python提供两种主要的循环结构: while循环 - 在条件为真时重复执行for循环 - 遍历序列中的元素 2. while循环 基本语法 while 条件表达式:循环体代码示例 count 0 while count < 5:print(f"这是第{count1}次循环")count 13. f…...
4.4日西南竞篮,欧篮联,NBA,全扫盘
欧篮联扫盘 301奥林匹亚 vs 阿尔巴 (11.5),总分167.5:阿尔巴有伤病,点差11.5大,可能是接近比赛,总分较低,预测阿尔巴赢盘,总分低于167.5。 302埃菲斯 vs 贝红星 (-1.5)&a…...
面试可能会遇到的问题回答(嵌入式软件开发部分)
写在前面: 博主也是刚入社会的小牛马,如果下面有写的不好或者写错的地方欢迎大家指出~ 一、四大件基础知识 1、计算机组成原理 (1)简单介绍一下中断是什么。 ①回答: ②难度系数:★★ ③难点分析&…...
AI平台初步规划实现和想法
要实现一个类似Coze的工作流搭建引擎,可以结合SmartEngine作为后端工作流引擎,ReactFlow作为前端流程图渲染工具,以及Ant Design作为UI组件库。以下是实现的步骤和关键点: ### 1. 后端工作流引擎(SmartEngine…...
软件工程面试题(二十七)
1、j a v a 对象初始化顺序 1.类的初始化(initialization class & interface) 2.对象的创建(creation of new class instances) 顺序:应为类的加载肯定是第一步的,所以类的初始化在前。大体的初始化顺序是: 类初始化 -> 子类构造函数 -> 父类构造函数 -&g…...
CCF GESP C++编程 六级认证真题 2025年3月
C 六级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 D B A B B B B A A A A A B C A 一、单选题 第 1 题 在面向对象编程中,类是一种重要的概念。下面关于类的描述中,不正确的是( )。 A. 类是一个抽象的概念&a…...
Cortex-M 上编写汇编函数
在 ARM Cortex-M 系列单片机中使用汇编语言编写函数时,需要特别注意寄存器的使用、栈管理、调用约定以及与 C 语言的兼容性。以下是关键注意事项和示例说明: 1. 遵循 AAPCS 调用约定 ARM 定义了 AAPCS(ARM Architecture Procedure Call Standard),规定了函数调用时寄存器…...
Spring 核心技术解析【纯干货版】- XXII:Spring 扫描效率提升模块 Spring-Context-Indexer 模块精讲
在 Spring 应用 中,组件扫描(Component Scan) 是 Spring 容器启动时的关键任务之一。默认情况下,Spring 通过 反射扫描整个类路径 来找到所有 Component、Service、Repository 等注解的类,并将其注册为 Spring Bean。但…...
jetson AGX orin--ARM64 换源报错Packages 404 Not Found [IP: 2402:f000:1:400::2 443]
问题 原因: ARM64结构不能使用X86结构的源,清华源不完全支持ARM64。使用下面这个源 sudo vim /etc/apt/sources.list 删掉原来的,改成这个 # ARM64 架构专用源 deb [archarm64] http://ports.ubuntu.com/ubuntu-ports focal main restrict…...
对备忘录模式的理解
对备忘录模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1095)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2、理解需求 二、不采用备忘录设计模式1、代码2、问题3、错误的备忘录模式 三、采用备忘录设计模式1、代码1.1 …...
ngx_ssl_init
定义在 src\event\ngx_event_openssl.c ngx_int_t ngx_ssl_init(ngx_log_t *log) { #if OPENSSL_VERSION_NUMBER > 0x10100003Lif (OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL) 0) {ngx_ssl_error(NGX_LOG_ALERT, log, 0, "OPENSSL_init_ssl() failed")…...
Roo Code(前身为 Roo Cline)一个 AI 驱动的自主编码代理
Roo Code(前身为 Roo Cline) Roo Code 是一个 AI 驱动的自主编码代理,它存在于您的编辑器中。它可以: 用自然语言沟通直接在您的工作区读写文件运行终端命令自动化浏览器操作与任何 OpenAI 兼容或自定义的 API/模型集成通过自定…...
每日一题洛谷P8649 [蓝桥杯 2017 省 B] k 倍区间c++
P8649 [蓝桥杯 2017 省 B] k 倍区间 - 洛谷 (luogu.com.cn) #include <iostream> #include <vector> using namespace std; #define int long long signed main() {int n, k;cin >> n >> k;vector<int> a(n 1);vector<int> sum(n 1);vec…...
CLion安装、配置及使用
目录 1 CLion是什么 2 CLion安装 3 系统环境变量配置 4 CLion配置 4.1 编辑器选择 4.2 编辑器配置 4.3 新建项目 5 总结 1 CLion是什么 CLion 是 JetBrains 推出的一款跨平台集成开发环境(IDE),专为 C 和 C 开发设计,支…...
UE5把动画导出为视频格式
UE5把动画导出为视频格式 步骤一 点击渲染视频或图片按钮旁边的三个圆点按钮 步骤二 点击渲染视频或图片按钮 步骤三 1是修改输出视频的帧率格式 2输出视频的路径 3点击等待视频渲染完成 以上是基本方法 最新的输出视频方法请看这位大佬的视频...
SQL语句(三)—— DQL
目录 基本语法 一、基础查询 1、查询多个字段 2、字段设置别名 3、去除重复记录 4、示例代码 二、条件查询 1、语法 2、条件列表常用的运算符 3、示例代码 三、分组查询 (一)聚合函数 1、介绍 2、常见的聚合函数 3、语法 4、示例代码 &…...
[2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
前言 类型 太赫兹 + 全光开关 太赫兹 + 全光开关 太赫兹+全光开关 期刊 A C S P H O T O N...
第十九节课: python第四周课程:程序分支结构详解
程序分支结构 1. 单分支结构 语法结构: if <条件>:<代码块>执行逻辑: 条件为真时执行代码块类似自然语言中的"如果…则…" 应用案例: # 猜数字示例 guess eval(input("请输入数字:")) if …...
NSSCTF [HGAME 2023 week1]simple_shellcode
3488.[HGAME 2023 week1]simple_shellcode 手写read函数shellcode和orw [HGAME 2023 week1]simple_shellcode (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file vuln vuln: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpret…...
图形渲染中的定点数和浮点数
三种API的NDC区别 NDC全称,Normalized Device Coordinates Metal、Vulkan、OpenGL的区别如下: featureOpenGL NDCMetal NDCVulkan NDC坐标系右手左手右手z值范围[-1,1][0,1][0,1]xy视口范围[-1,1][-1,1][-1,1] GPU渲染的定点数和浮点数 定点数类型&a…...
报考高校辅导员需要具备哪些条件?
报考高校辅导员通常需要具备以下条件: 基本条件 国籍与政治面貌:具有中华人民共和国国籍,一般要求是中共党员(含预备党员)。道德品质:遵守宪法和法律,具有良好的品行,作风正派&…...
什么是Stop The World
深入解析Stop-The-World(STW):JVM垃圾回收的"世界暂停"现象 1. 什么是Stop-The-World(STW)? Stop-The-World(STW) 是JVM在执行垃圾回收(GC)时的一…...
Promise 详细说明、常用方法
Promise 详细说明 上一节:认识 Promise 1. 常用的几种方法 1.1 resolve 方法 resolve 方法作用:将一个普通的值转换成 Promise 类型的数据 方法的状态与结果受参数影响: 参数非 Promise 对象,将返回一个 Promise 对象…...
大模型学习四:DeepSeek Janus-Pro 多模态理解和生成模型 本地部署与调用指南
一、说明简介 DeepSeek Janus-Pro是一款先进的多模态理解和生成模型,旨在实现高质量的文本-图像生成与多模态理解。它是由DeepSeek团队研发的,是之前Janus模型的升级版,能够同时处理文本和图像,即可以理解图片内容,…...
康托展开原理
康托展开(Cantor Expansion) 康托展开是一种用于排列唯一编码的方法,可以把一个排列转换成一个整数,并且能够从整数反向解析出原排列。主要用于排列的唯一表示、字典序排名、全排列生成等问题。 1. 康托展开公式 给定一个长度为…...
RESTful如何传递参数
文章目录 前言一、REST 遵循核心原则二、REST 的优点和缺点1.优点2.缺点 三、常见参数传递方式1)路径参数(Path Parameters)2)查询参数(Query Parameters)3)请求体参数(Request Body…...