python中的字符串处理
无极低码 :https://wheart.cn
字符串常量
此模块中定义的常量为:
string.ascii_letters
下文所述 ascii_lowercase 和 ascii_uppercase 常量的拼连。 该值不依赖于语言区域。
string.ascii_lowercase
小写字母 'abcdefghijklmnopqrstuvwxyz'
。 该值不依赖于语言区域,不会发生改变。
string.ascii_uppercase
大写字母 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
。 该值不依赖于语言区域,不会发生改变。
string.digits
字符串 '0123456789'
。
string.hexdigits
字符串 '0123456789abcdefABCDEF'
。
string.octdigits
字符串 '01234567'
。
string.punctuation
由在 C
区域设置中被视为标点符号的 ASCII 字符所组成的字符串: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
.
string.printable
由被视为可打印符号的 ASCII 字符组成的字符串。 这是 digits, ascii_letters, punctuation 和 whitespace 的总和。
string.whitespace
由被视为空白符号的 ASCII 字符组成的字符串。 其中包括空格、制表、换行、回车、进纸和纵向制表符。
自定义字符串格式化
内置的字符串类提供了通过使用 PEP 3101 所描述的 format() 方法进行复杂变量替换和值格式化的能力。 string 模块中的 Formatter 类允许你使用与内置 format() 方法相同的实现来创建并定制你自己的字符串格式化行为。
class string.Formatter
Formatter 类包含下列公有方法:
format(format_string, /, *args, **kwargs)
首要的 API 方法。 它接受一个格式字符串和任意一组位置和关键字参数。 它只是一个调用 vformat() 的包装器。
在 3.7 版本发生变更: 格式字符串参数现在是 仅限位置参数。
vformat(format_string, args, kwargs)
此函数执行实际的格式化操作。 它被公开为一个单独的函数,用于需要传入一个预定义字母作为参数,而不是使用 *args
和 **kwargs
语法将字典解包为多个单独参数并重打包的情况。 vformat() 完成将格式字符串分解为字符数据和替换字段的工作。 它会调用下文所述的几种不同方法。
此外,Formatter 还定义了一些旨在被子类替换的方法:
parse(format_string)
循环遍历 format_string 并返回一个由可迭代对象组成的元组 (literal_text, field_name, format_spec, conversion)。 它会被 vformat() 用来将字符串分解为文本字面值或替换字段。
元组中的值在概念上表示一段字面文本加上一个替换字段。 如果没有字面文本(如果连续出现两个替换字段就会发生这种情况),则 literal_text 将是一个长度为零的字符串。 如果没有替换字段,则 field_name, format_spec 和 conversion 的值将为 None
。
get_field(field_name, args, kwargs)
给定 field_name 作为 parse() (见上文) 的返回值,将其转换为要格式化的对象。 返回一个元组 (obj, used_key)。 默认版本接受在 PEP 3101 所定义形式的字符串,例如 "0[name]" 或 "label.title"。 args 和 kwargs 与传给 vformat() 的一样。 返回值 used_key 与 get_value() 的 key 形参具有相同的含义。
get_value(key, args, kwargs)
提取给定的字段值。 key 参数将为整数或字符串。 如果是整数,它表示 args 中位置参数的索引;如果是字符串,它表示 kwargs 中的关键字参数名。
args 形参会被设为 vformat() 的位置参数列表,而 kwargs 形参会被设为由关键字参数组成的字典。
对于复合字段名称,仅会为字段名称的第一个组件调用这些函数;后续组件会通过普通属性和索引操作来进行处理。
因此举例来说,字段表达式 '0.name' 将导致调用 get_value() 时附带 key 参数值 0。 在 get_value() 通过调用内置的 getattr() 函数返回后将会查找 name
属性。
如果索引或关键字引用了一个不存在的项,则将引发 IndexError 或 KeyError。
check_unused_args(used_args, args, kwargs)
在必要时实现对未使用参数进行检测。 此函数的参数是是格式字符串中实际引用的所有参数键的集合(整数表示位置参数,字符串表示名称参数),以及被传给 vformat 的 args 和 kwargs 的引用。 未使用参数的集合可以根据这些形参计算出来。 如果检测失败则 check_unused_args() 应会引发一个异常。
format_field(value, format_spec)
format_field() 会简单地调用内置全局函数 format()。 提供该方法是为了让子类能够重载它。
convert_field(value, conversion)
使用给定的转换类型(来自 parse() 方法所返回的元组)来转换(由 get_field() 所返回的)值。 默认版本支持 's' (str), 'r' (repr) 和 'a' (ascii) 等转换类型。
格式字符串语法
str.format() 方法和 Formatter 类共享相同的格式字符串语法(虽然对于 Formatter 来说,其子类可以定义它们自己的格式字符串语法)。 具体语法与 格式化字符串字面值 相似,但较为简单一些,并且关键的一点是不支持任意表达式。
格式字符串包含有以花括号 {}
括起来的“替换字段”。 不在花括号之内的内容被视为字面文本,会不加修改地复制到输出中。 如果你需要在字面文本中包含花括号字符,可以通过重复来转义: {{
and }}
。
替换字段的语法如下:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | digit+]
attribute_name ::= identifier
element_index ::= digit+ | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= format-spec:format_spec
用不太正式的术语来描述,替换字段开头可以用一个 field_name 指定要对值进行格式化并取代替换字符被插入到输出结果的对象。 field_name 之后有可选的 conversion 字段,它是一个感叹号 '!'
加一个 format_spec,并以一个冒号 ':'
打头。 这些指明了替换值的非默认格式。
另请参阅 格式规格迷你语言 一节。
field_name 本身以一个数字或关键字形式的 arg_name 打头。 如果为数字,则它指向一个位置参数,而如果为关键字,则它指向一个命名关键字参数。 如果在字符串上调用 str.isdecimal() 会返回真值则 arg_name 会被当作数字来处理。 如果格式字段串中的数字 arg_names 为 0, 1, 2, ... 的序列,它们可以全部(而非部分)被省略并且数字 0, 1, 2, ... 将按顺序被自动插入。 由于 arg_name 不使用引号分隔,因此无法在格式字符串中指定任意的字典键(例如字符串 '10'
或 ':-]'
等)。 arg_name 之后可以跟任意数量的索引或属性表达式。 '.name'
形式的表达式会使用 getattr() 来选择命名属性,而 '[index]'
形式的表达式会使用 __getitem__() 来执行索引查找。
在 3.1 版本发生变更: 位置参数说明符对于 str.format() 可以省略,因此 '{} {}'.format(a, b)
等价于 '{0} {1}'.format(a, b)
。
在 3.4 版本发生变更: 位置参数说明符对于 Formatter 可以省略。
一些简单的格式字符串示例
"First, thou shalt count to {0}" # References first positional argument
"Bring me a {}" # Implicitly references the first positional argument
"From {} to {}" # Same as "From {0} to {1}"
"My quest is {name}" # References keyword argument 'name'
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
"Units destroyed: {players[0]}" # First element of keyword argument 'players'.
conversion 字段会在格式化之前进行类型强制转换。 通常,格式化一个值的工作是由该值本身的 __format__() 方法完成的。 但是,在某些情况下最好是强制将类型格式化为一个字符串,覆盖其本身的格式化定义。 通过在调用 __format__() 之间将值转换为字符串,可以绕过正常的格式化逻辑。
目前支持的转换旗标有三种: '!s'
会对值调用 str(),'!r'
调用 repr() 而 '!a'
则调用 ascii()。
示例如下:
"Harold's a clever {0!s}" # Calls str() on the argument first
"Bring out the holy {name!r}" # Calls repr() on the argument first
"More {!a}" # Calls ascii() on the argument first
format_spec 字段包含值应如何呈现的规格描述,例如字段宽度、对齐、填充、小数精度等细节信息。 每种值类型可以定义自己的“格式化迷你语言”或对 format_spec 的解读方式。
大多数内置类型都支持同样的格式化迷你语言,具体描述见下一节。
format_spec 字段还可以在其内部包含嵌套的替换字段。 这些嵌套的替换字段可能包括字段名称、转换旗标和格式规格描述,但是不再允许更深层的嵌套。 format_spec 内部的替换字段会在解读 format_spec 字符串之前先被解读。 这将允许动态地指定特定值的格式。
请参阅 格式示例 一节查看相关示例。
格式规格迷你语言
“格式规格”在格式字符串所包含的替换字段内部使用,用于定义单个值应如何呈现 (参见 格式字符串语法 和 f 字符串)。 它们也可以被直接传给内置的 format() 函数。 每种可格式化的类型都可以自行定义如何对格式规格进行解读。
大多数内置类型都为格式规格实现了下列选项,不过某些格式化选项只被数值类型所支持。
一般约定空的格式描述将产生与在值上调用 str() 相同的结果。 非空格式描述通常会修改此结果。
标准格式说明符 的一般形式如下:
format_spec ::= [[fill]align][sign]["z"]["#"]["0"][width][grouping_option]["." precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= digit+
grouping_option ::= "_" | ","
precision ::= digit+
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
如果指定了一个有效的 align 值,则可以在该值前面加一个 fill 字符,它可以为任意字符,如果省略则默认为空格符。 在 格式化字符串字面值 或在使用 str.format() 方法时是无法使用花括号字面值 ("{
" or "}
") 作为 fill 字符的。 但是,通过嵌套替换字段插入花括号则是可以的。 这个限制不会影响 format() 函数。
各种对齐选项的含义如下:
选项 | 含意 |
---|---|
'<' | 强制字段在可用空间内左对齐(这是大多数对象的默认值)。 |
'>' | 强制字段在可用空间内右对齐(这是数字的默认值)。 |
'=' | 强制在符号(如果有)之后数码之前放置填充。 这被用于以 '+000000120' 形式打印字段。 这个对齐选项仅对数字类型有效。 这是当 '0' 紧接在字段宽度之前时的默认选项。 |
'^' | 强制字段在可用空间内居中。 |
请注意,除非定义了最小字段宽度,否则字段宽度将始终与填充它的数据大小相同,因此在这种情况下,对齐选项没有意义。
sign 选项仅对数字类型有效,可以是以下之一:
选项 | 含意 |
---|---|
'+' | 表示标志应该用于正数和负数。 |
'-' | 表示标志应仅用于负数(这是默认行为)。 |
space | 表示应在正数上使用前导空格,在负数上使用减号。 |
The 'z'
option coerces negative zero floating-point values to positive zero after rounding to the format precision. This option is only valid for floating-point presentation types.
在 3.11 版本发生变更: 增加了 'z'
选项 (另请参阅 PEP 682)。
'#'
选项可让“替代形式”被用于执行转换。 替代形式会针对不同的类型分别定义。 此选项仅适用于整数、浮点数和复数类型。 对于整数类型,当使用二进制、八进制或十六进制输出时,此选项会为输出值分别添加相应的 '0b'
, '0o'
, '0x'
或 '0X'
前缀。 对于浮点数和复数类型,替代形式会使得转换结果总是包含小数点符号,即使其不带小数部分。 通常只有在带有小数部分的情况下,此类转换的结果中才会出现小数点符号。 此外,对于 'g'
和 'G'
转换,末尾的零不会从结果中被移除。
','
选项表示使用逗号作为千位分隔符。 对于感应区域设置的分隔符,请改用 'n'
整数表示类型。
在 3.1 版本发生变更: 添加了 ','
选项 (另请参阅 PEP 378)。
'_'
选项表示对浮点表示类型和整数表示类型 'd'
使用下划线作为千位分隔符。 对于整数表示类型 'b'
, 'o'
, 'x'
和 'X'
,将为每 4 个数位插入一个下划线。 对于其他表示类型指定此选项则将导致错误。
在 3.6 版本发生变更: 添加了 '_'
选项 (另请参阅 PEP 515)。
width 是一个定义最小总字段宽度的十进制整数,包括任何前缀、分隔符和其他格式化字符。 如果未指定,则字段宽度将由内容确定。
当未显式给出对齐方式时,在 width 字段前加一个零 ('0'
) 字段将为数字类型启用感知正负号的零填充。 这相当于设置 fill 字符为 '0'
且 alignment 类型为 '='
。
在 3.10 版本发生变更: 在 width 字段之前添加 '0'
不会再影响字符串的默认对齐。
precision 是一个十进制整数,它表示对于以表示类型 'f'
和 'F'
格式化的数值应当在小数点后显示多少个数位,或者对于以表示类型 'g'
或 'G'
格式化的数值应当在小数点前后显示多少个数位。 对于字符串表示类型,该字段表示最大的字段大小 ——换句话说,就是要使用多少个来自字段内容的字符。不允许对整数表示类型指定 precision 字段。
最后,type 确定了数据应如何呈现。
可用的字符串表示类型是:
类型含意's'字符串格式。这是字符串的默认类型,可以省略。None和 's' 一样。
可用的整数表示类型是:
类型含意'b'二进制格式。 输出以 2 为基数的数字。'c'字符。在打印之前将整数转换为相应的unicode字符。'd'十进制整数。 输出以 10 为基数的数字。'o'八进制格式。 输出以 8 为基数的数字。'x'十六进制格式。 输出以 16 为基数的数字,使用小写字母表示 9 以上的数码。'X'十六进制格式。 输出以 16 为基数的数字,使用大写字母表示 9 以上的数码。 在指定 '#' 的情况下,前缀 '0x' 也将被转为大写形式 '0X'。'n'数字。 这与 'd' 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符。None和 'd' 相同。
在上述的表示类型之外,整数还可以通过下列的浮点表示类型来格式化 (除了 'n'
和 None
)。 当这样做时,会在格式化之前使用 float() 将整数转换为浮点数。
float 和 Decimal 值的可用表示类型有:
类型含意'e'科学计数法。 对于一个给定的精度 p,将数字格式化为以字母 'e' 分隔系数和指数的科学计数法形式。 系数在小数点之前有一位,之后有 p 位,总计 p + 1 个有效数位。 如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则显示所有系数位。 如果小数点之后没有数位,则小数点也会被略去,除非使用了 # 选项。'E'科学计数法。 与 'e' 相似,不同之处在于它使用大写字母 'E' 作为分隔字符。'f'定点表示法。 对于一个给定的精度 p,将数字格式化为在小数点之后恰好有 p 位的小数形式。 如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则使用大到足够显示所有系数位的精度。 如果小数点之后没有数位,则小数点也会被略去,除非使用了 # 选项。'F'定点表示。 与 'f' 相似,但会将 nan 转为 NAN 并将 inf 转为 INF。'g'常规格式。 对于给定精度 p >= 1,这会将数值舍入到 p 个有效数位,再将结果以定点表示法或科学计数法进行格式化,具体取决于其值的大小。 精度 0 会被视为等价于精度 1。准确的规则如下:假设使用表示类型 'e' 和精度 p-1 进行格式化的结果具有指数值 exp。 那么如果 m <= exp < p,其中 m 以 -4 表示浮点值而以 -6 表示 Decimal 值,该数字将使用类型 'f' 和精度 p-1-exp 进行格式化。 否则的话,该数字将使用表示类型 'e' 和精度 p-1 进行格式化。 在两种情况下,都会从有效数字中移除无意义的末尾零,如果小数点之后没有余下数字则小数点也会被移除,除非使用了 '#' 选项。如未指定精度,会对 float 采用 6 个有效数位的精度。 对于 Decimal,结果的系数会沿用原值的系数数位;对于绝对值小于 1e-6 的值以及最小有效数位的位值大于 1 的数值将会使用科学计数法,在其他情况下则会使用定点表示法。正负无穷,正负零和 nan 会分别被格式化为 inf, -inf, 0, -0 和 nan,无论精度如何设定。'G'常规格式。 类似于 'g',不同之处在于当数值非常大时会切换为 'E'。 无穷与 NaN 也会表示为大写形式。'n'数字。 这与 'g' 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符。'%'百分比。 将数字乘以 100 并显示为定点 ('f') 格式,后面带一个百分号。None对于 float 来说这类似于 'g',不同之处在于当使用定点表示法时,小数点之后将至少显示一位。 所用的精度会大到足以精确表示给定的值。对于 Decimal 来说这相当于 'g' 或 'G',具体取决于当前 decimal 上下文的 context.capitals 值。总体效果是将 str() 的输出匹配为其他格式化因子所调整出的样子。
相关文章:
python中的字符串处理
无极低码 :https://wheart.cn 字符串常量 此模块中定义的常量为: string.ascii_letters 下文所述 ascii_lowercase 和 ascii_uppercase 常量的拼连。 该值不依赖于语言区域。 string.ascii_lowercase 小写字母 abcdefghijklmnopqrstuvwxyz。 该值不依…...

java之servlet
动态的web资源开发技术 不同的用户,或者携带不同的参数,访问服务器 服务器添加判断层,实现访问不同的web资源...

重推请求之curl和fiddler
在实际的项目中会有出现问题,想重现的场景,比较重新调用一个服务,那么如何进行快速的重推请求呢,记录下来,方便备查。 主要有curl和fiddler两种方式,下面详细说。 方式一、curl 命令 curl 是一个利用URL规…...

基于redis实现【最热搜索】和【最近搜索】功能
目录 一、前言二、分析问题三、针对两个问题,使用redis怎么解决问题?1、字符串String2、列表List3、字典Hash4、集合Set5、有序集合ZSet6、需要解决的五大问题 四、编写代码1.pom依赖2.application.yml配置3.Product商品实体4.用户最近搜索信息5.redis辅…...

1.2 debug的六种指令的使用,四个通用寄存器
汇编语言 首先进入环境 mount c d:masm //把c挂载在d盘中的masm当中 c: //进入c,进入到编译环境 dir //查看文件,可有可无Debug是DOS、Windows都提供的实模式(8086 方式)程序的调试工具。使用它可以查看CPU各种寄存器中的内容…...

C# OpenVINO Crack Seg 裂缝分割 裂缝检测
目录 效果 模型信息 项目 代码 数据集 下载 C# OpenVINO Crack Seg 裂缝分割 裂缝检测 效果 模型信息 Model Properties ------------------------- date:2024-02-29T16:35:48.364242 author:Ultralytics task:segment version&…...

前后端项目-part03
文章目录 5.4.4 机构名称5.4.4.1 创建实体类Company5.4.4.2 创建实体类CompanyMapper5.4.4.3 创建实体类CompanyService5.4.4.4 创建实体类CompanyController5.4.4.5 后端测试5.4.4.6 修改basic.js5.4.4.7 修改course.vue5.4.4.8 测试5.4.5 课程标签5.4.5.1 效果5.4.5.2 修改co…...

Java 1.8 docker 镜像制作
文章目录 一、下载文件二、精简JRE三、Dockerfile四、构建镜像五、容器测试 一、下载文件 glibc 下载地址 glibc-2.33-r0.apk glibc-bin-2.33-r0.apk glibc-i18n-2.33-r0.apk rsa sgerrand.rsa.pub jre 1.8 jre-8u201-linux-x64.tar.gz 二、精简JRE 解压 tar -zxvf jre-8…...

python中自定义报错
class MyError(Exception):def __init__(self,num):#录入的数Exception.__init__(self)self.numnumdef __str__(self):return 这是我定义的第%d个异常 %(self.num)使用 try:raise MyError(4) except MyError as e:print(e)raise 其作用是指定抛出的异常名称,以及异常…...
part1:sora技术
1.Sora能力边界探索 从sora的视频合集里看到了多段视频,假如我不知道这是sora视频合计,估计我第一反应并不是AI生成了这些视频,可以说在我这里通过了图灵测试😊。 在视频合集里还有同一场景的多角度/镜头的生成能力,让…...

RK3568平台开发系列讲解(基础篇)文件私有数据
🚀返回专栏总目录 文章目录 一、文件私有数据二、文件私有数据实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、文件私有数据 Linux 中并没有明确规定要使用文件私有数据,但是在 linux 驱动源码中,广泛使用了文件私有数据,这是 Linux 驱动遵循的“潜规则”,实…...

跨时钟信号处理方法
1. 背景 现在的芯片(比如SOC,片上系统)集成度和复杂度越来越高,通常一颗芯片上会有许多不同的信号工作在不同的时钟频率下。比如SOC芯片中的CPU通常会工作在一个频率上,总线信号(比如DRAM BUS)会…...

OD(13)之Mermaid饼图和象限图
OD(13)之Mermaid饼图和象限图使用详解 Author: Once Day Date: 2024年2月29日 漫漫长路才刚刚开始… 全系列文章可参考专栏: Mermaid使用指南_Once_day的博客-CSDN博客 参考文章: 关于 Mermaid | Mermaid 中文网 (nodejs.cn)Mermaid | Diagramming and charting tool…...

基于springboot+vue的智能无人仓库管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

图神经网络实战——图论
图神经网络实战——图论 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图与非加权图1.3 连通图非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前言 图论 (Graph theory) 是数学…...
【PHP进阶】Rabbitmq的实际使用
RabbitMQ是一个流行的消息队列中间件,它提供了可靠的消息传递机制。在使用RabbitMQ时,有几个重要的概念需要了解: 消息队列(Message Queue):RabbitMQ中的核心概念之一。它是消息的缓冲区,用于存…...

如何解决机器视觉高速图像处理软件的加密需求?
高速图像处理在机器视觉中的应用重要性 在机器视觉行业中,高速图像处理软件的作用至关重要,它使得机器能够迅速分析和处理成千上万的图像数据。这种能力在制造业、安防系统、交通监控等多个领域发挥着核心作用,如在制造业中,高速…...

Linux的条件变量
条件变量 条件变量本身不是锁,但是它可以造成线程阻塞。通常于互斥锁配合使用。给多线程提供一个会和的场合。 使用互斥量保护共享数据使用条件变量可以造成线程阻塞,等待某个条件的发生,当条件满足的时候解除阻塞。 条件变量的两个动作&a…...

【Python笔记-设计模式】状态模式
一、说明 状态模式是一种行为设计模式,用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时,规避使用大量的条件语句来判断对象的状态,提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…...
Pytorch 复习总结 5
Pytorch 复习总结,仅供笔者使用,参考教材: 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为:Pytorch 卷积神经网络。 本文先介绍了 Pytorch 语法汇总: Pytorch 张量的常见运算、…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...