[Python]String Methods 字符串方法(上)

[Python]String Methods 字符串方法(上)

String Methods 字符串方法(上)

Strings implement all of the common sequence operations, along with the additional methods described below.

字符串实现所有常见的序列作,以及下面描述的其他方法。

Strings also support two styles of string formatting, one providing a large degree of flexibility and customization (see str.format(), Format String Syntax and Custom String Formatting) and the other based on C printf style formatting that handles a narrower range of types and is slightly harder to use correctly, but is often faster for the cases it can handle (printf-style String Formatting).

字符串还支持两种字符串格式样式,一种提供了很大程度的灵活性和自定义性(参见 str.format()格式字符串语法自定义字符串格式 ),另一个基于 C printf 样式格式,可处理范围较窄的类型,并且更难正确使用,但对于它可以处理的情况通常更快(printf 样式的字符串格式)。

The Text Processing Services section of the standard library covers a number of other modules that provide various text related utilities (including regular expression support in the re module).

标准库的 “文本处理服务 ”部分涵盖了许多其他模块,这些模块提供各种与文本相关的实用程序(包括 re 模块中的正则表达式支持)。

str.encode(encoding=‘utf-8’, errors=‘strict’)Return the string encoded to bytes. 返回编码为字节的字符串。encoding defaults to 'utf-8'; see Standard Encodings for possible values.编码默认为 ;有关可能的值,请参阅标准编码。errors controls how encoding errors are handled. If 'strict' (the default), a UnicodeError exception is raised. Other possible values are 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' and any other name registered via codecs.register_error(). See Error Handlers for details. errors控制如何处理编码错误。如果为 'strict'(默认值),则引发 UnicodeError 异常。其他可能的值是 'ignore''replace''xmlcharrefreplace''backslashreplace' 以及通过 codecs.register_error() 注册的任何其他名称。有关详细信息,请参阅错误处理程序 。For performance reasons, the value of errors is not checked for validity unless an encoding error actually occurs, Python Development Mode is enabled or a debug build is used. For example:出于性能原因,不会检查错误值的有效性 除非确实发生编码错误, 启用 Python 开发模式或使用调试构建 。例如:encoded_str_to_bytes = 'Python'.encode() type(encoded_str_to_bytes) <class 'bytes'> encoded_str_to_bytes b'Python' Changed in version 3.1: Added support for keyword arguments. 在 3.1 版更改: 添加了对关键字参数的支持。Changed in version 3.9: The value of the errors argument is now checked in Python Development Mode and in debug mode. 在 3.9 版更改: 现在在 Python 开发模式调试模式下检查 errors 参数的值。

str.encode(encoding='utf-8', errors='strict')是 Python 中字符串的一个方法,用于将字符串编码为字节序列。这个方法非常有用,尤其是在处理文本数据时需要将字符串转换为特定编码格式的字节数据。

语法

参数

• encoding:可选,指定编码格式。默认值是'utf-8'。常见的编码格式包括:

'utf-8':最常用的编码格式,支持多语言。

'ascii':仅支持 ASCII 字符集。

'latin1':支持西欧字符集。

'gbk':支持中文字符集。

• errors:可选,指定错误处理方式。默认值是'strict'。常见的错误处理方式包括:

'strict':遇到无法编码的字符时抛出UnicodeEncodeError

'ignore':忽略无法编码的字符。

'replace':用一个特殊的字符(如?)替换无法编码的字符。

'xmlcharrefreplace':用 XML 字符引用替换无法编码的字符。

'backslashreplace':用 Python 的反斜杠转义序列替换无法编码的字符。

str.count(sub[, start[, end]])Return the number of non-overlapping occurrences of substring sub in the range [start, end]. Optional arguments start and end are interpreted as in slice notation.返回 [startend] 范围内子字符串 sub 的非重叠出现次数。可选参数 startend 被解释为切片表示法。If sub is empty, returns the number of empty strings between characters which is the length of the string plus one. For example:如果 sub 为空,则返回字符之间的空字符串数,即字符串的长度加一。例如:'spam, spam, spam'.count('spam') 3 'spam, spam, spam'.count('spam', 5) 2 'spam, spam, spam'.count('spam', 5, 10) 1 'spam, spam, spam'.count('eggs') 0 'spam, spam, spam'.count('') 17

str.count(sub[, start[, end]])是 Python 中字符串的一个方法,用于计算子字符串sub在字符串中出现的次数。这个方法可以指定搜索的起始和结束位置,从而限制搜索范围。

语法

参数

• sub:必需,要搜索的子字符串。

• start:可选,搜索的起始位置。默认为 0。

• end:可选,搜索的结束位置。默认为字符串的长度。

返回值
返回子字符串sub在字符串中出现的次数。

示例

示例 1:基本用法

示例 2:指定搜索范围

示例 3:指定起始和结束位置

示例 4:子字符串不存在

示例 5:空字符串

注意事项

str.count()不会修改原始字符串,因为字符串在 Python 中是不可变的。它返回一个整数,表示子字符串出现的次数。

• 如果sub是空字符串,str.count()会返回字符串的长度加 1,因为每个字符之间(包括字符串的开头和结尾)都被视为一个空字符串的位置。

• 如果startend超出了字符串的范围,它们会被自动调整到字符串的有效范围内。

总结
str.count()是一个非常实用的字符串方法,适用于需要统计子字符串在字符串中出现次数的场景。它在处理文本数据时非常方便,尤其是在需要进行文本分析或格式化时。

str.center(width[, fillchar])Return centered in a string of length width. Padding is done using the specified fillchar (default is an ASCII space). The original string is returned if width is less than or equal to len(s). For example:返回以长度宽度为的字符串居中。使用指定的 fillchar(默认为 ASCII 空格)完成填充。如果宽度小于或等于 len(s), 则返回原始字符串。例如:'Python'.center(10) ' Python ' 'Python'.center(10, '-') '--Python--' 'Python'.center(4) 'Python'

str.center(width[, fillchar])是 Python 中字符串的一个方法,用于将字符串居中对齐到指定的宽度。如果字符串的长度小于指定的宽度,它会在字符串的两侧填充指定的字符(默认是空格)。

语法

参数

• width:必需,指定字符串居中对齐的总宽度。

• fillchar:可选,指定用于填充的字符。默认是空格(' ')。如果指定,必须是一个字符。

返回值
返回一个新的字符串,其中原始字符串被居中对齐到指定的宽度。如果字符串的长度已经大于或等于指定的宽度,则返回原始字符串。

示例

示例 1:基本用法

示例 2:指定填充字符

示例 3:字符串长度大于指定宽度

示例 4:使用非打印字符

注意事项

str.center()不会修改原始字符串,因为字符串在 Python 中是不可变的。它返回一个新的字符串。

• 如果fillchar不是单个字符,会抛出TypeError

• 如果width小于字符串的长度,返回原始字符串。

总结
str.center()是一个非常实用的字符串方法,适用于需要将字符串居中对齐到指定宽度的场景。它在处理文本格式化时非常方便,尤其是在生成报告或对齐文本输出时。

str.casefold()Return a casefolded copy of the string. Casefolded strings may be used for caseless matching.返回字符串的大小写折叠副本。大小写折叠字符串可用于无大小写匹配。Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercase letter 'ß' is equivalent to "ss". Since it is already lowercase, lower() would do nothing to 'ß'; casefold() converts it to "ss".大小写折叠类似于小写,但更具侵略性,因为它旨在删除字符串中的所有大小写区别。例如,德语小写字母 “ß” 相当于 “ss”。由于它已经是小写的,lower()'ß' 没有任何作用; 案例折叠() 将其转换为 “SS”。The casefolding algorithm is described in section 3.13 ‘Default Case Folding’ of the Unicode Standard. 大小写折叠算法是 在 Unicode 标准的第 3.13 节“默认大小写折叠”中进行了描述 Added in version 3.3. 在 3.3 版本中添加。

str.casefold()是 Python 中字符串的一个方法,用于将字符串中的所有字符转换为小写形式,同时处理一些特殊字符的大小写折叠(case folding)。它比str.lower()更为严格,能够处理更多语言和字符集中的大小写转换问题。

语法

参数
str.casefold()不接受任何参数。

返回值
返回一个新的字符串,其中所有字符都被转换为小写形式,同时处理了特殊字符的大小写折叠。

示例

示例 1:基本用法

示例 2:处理特殊字符
str.casefold()能够处理一些特殊字符,例如德语中的"ß"(小写形式是"ss")。

示例 3:处理全大写字符串

示例 4:处理混合大小写字符串

示例 5:处理空字符串

注意事项

str.casefold()不会修改原始字符串,因为字符串在 Python 中是不可变的。它返回一个新的字符串。

str.casefold()str.lower()更为严格,能够处理更多语言和字符集中的大小写转换问题。

• 如果字符串为空或不包含任何字母字符,str.casefold()不会进行任何操作。

str.lower()的区别

str.lower()仅将字符串中的大写字母转换为小写,但不处理特殊字符的大小写折叠。

str.casefold()能够处理更多语言和字符集中的大小写转换问题,特别是一些特殊字符(如德语中的"ß")。

示例对比

总结
str.casefold()是一个非常实用的字符串方法,适用于需要将字符串中的所有字符转换为小写形式,同时处理特殊字符的大小写折叠的情况。它在处理多语言和特殊字符时比str.lower()更为强大。

str.capitalize()Return a copy of the string with its first character capitalized and the rest lowercased.返回字符串的副本,其第一个字符大写,其余字符小写。Changed in version 3.8: The first character is now put into titlecase rather than uppercase. This means that characters like digraphs will only have their first letter capitalized, instead of the full character.在 3.8 版更改: 第一个字符现在被放入标题中而不是大写。这意味着像二合字母这样的字符将仅将其第一个字母大写,而不是完整字符。

str.capitalize()是 Python 中字符串的一个方法,用于将字符串的第一个字母转换为大写,同时将其他字母转换为小写。这个方法非常适用于处理文本数据,尤其是需要将文本的首字母大写以符合语法规范时。

语法

参数
str.capitalize()不接受任何参数。

返回值
返回一个新的字符串,其中第一个字母被转换为大写,其余字母被转换为小写。

示例

示例 1:基本用法

示例 2:处理空字符串

示例 3:处理数字和符号
str.capitalize()只影响字母字符,对数字和符号没有影响。

示例 4:处理全大写字符串

示例 5:处理混合大小写字符串

注意事项

str.capitalize()不会修改原始字符串,因为字符串在 Python 中是不可变的。它返回一个新的字符串。

• 如果字符串为空或第一个字符不是字母,str.capitalize()不会进行任何操作。

总结
str.capitalize()是一个非常实用的字符串方法,适用于需要将字符串的首字母大写并确保其余部分为小写的情况。它在处理文本数据时非常方便,尤其是在需要符合语法规范的场景中。

Read more

Python PyQt上位机项目应用:温控系统监控实例

用Python+PyQt打造工业级温控监控上位机:从零到实战 在工厂车间的一角,一台老式温控箱正默默运行。它的前面板只有几个闪烁的数码管和按钮,操作员每隔一小时就要手动记录一次温度数据——这种场景你是否似曾相识?而在隔壁的新产线,同样的设备却已接入了一套可视化监控系统:实时曲线、越限报警、历史回放、远程配置……所有信息尽在眼前。 这背后的关键,就是 上位机软件 。 今天,我们就以一个真实的温控系统监控项目为蓝本,手把手带你用 Python + PyQt 搭建一套功能完整、稳定可靠的工业监控界面。不讲空话,只聊实战。 为什么选择PyQt做上位机? 很多人第一反应是:“不是有组态王、WinCC这些专业工具吗?”确实,大型系统离不开它们。但对中小型项目、教学实验或快速原型开发来说,这些商业软件显得“杀鸡用牛刀”了。 而 Python 配合 PyQt,则提供了另一种可能: * 开发效率高:语法简洁,代码量少 * 跨平台运行:Windows/Linux/macOS

By Ne0inhk
量子力学数学基础入门:从态矢到内积外积(附Python演示)

量子力学数学基础入门:从态矢到内积外积(附Python演示)

📐 形象比喻之后,用数学精确描述量子世界 在上一篇文章中,我们用“拆掉楼梯的大楼”“同时存在于所有楼层的人”等比喻,直观地理解了量子化、叠加、测量等核心概念。但真正要进入量子计算的大门,必须掌握量子力学的数学语言——狄拉克符号和线性代数。 本文作为姊妹篇,将用数学方式重新表述量子力学的基础概念,并辅以Python代码(NumPy)演示,让你亲手计算态矢、内积、外积,感受数学公式背后的物理意义。 一、为什么要用数学描述量子力学? 形象比喻虽然易懂,但无法精确计算。例如: * 叠加态中的“权重”具体是多少? * 测量得到某个结果的概率如何计算? * 两个量子态是相同还是正交? 这些问题的答案都隐藏在数学结构中。量子力学的数学框架是希尔伯特空间中的线性代数,所有物理过程都可以转化为向量和矩阵的运算。一旦掌握这套语言,你就能理解量子门、量子算法,甚至动手模拟量子电路。 二、态矢:量子态的数学化身 1. 右矢(ket) ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 在量子力学中,

By Ne0inhk
当 Python 模块化遇上 AI Agent:构建高可扩展智能体的底层逻辑与工程实战

当 Python 模块化遇上 AI Agent:构建高可扩展智能体的底层逻辑与工程实战

导读:在 LLM 驱动的 AI 时代,我们正在从“写代码”转向“构筑智能体”。然而,一个能够自主调用工具、拥有长期记忆且逻辑严密的 Agent,本质上是一个极其复杂的 Python 工程。如果说大模型是智能体的“大脑”,那么 Python 的模块与包机制就是它的“神经系统”和“骨架”。本文将深入探讨 Python 模块化编程的精髓,并揭示其如何支撑起未来智能体的架构设计。本文字数 2000+,建议收藏。 🚀 一、 范式转移:从简单脚本到智能体架构 在智能体(AI Agent)的开发中,我们经常面临这样的场景:Agent 需要根据需求动态加载不同的“工具插件”(Tools)。如果这些插件组织混乱,Agent 就会因为命名空间冲突或路径找不到而“宕机”。 1.1

By Ne0inhk
Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用

Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用

Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用 Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用,大家好,我是 xcLeigh。现在国产化数据库越来越普及,金仓数据库(KingbaseES)作为一款超实用的企业级关系型数据库,在政府、金融、能源这些关键领域用得特别多。今天我就带大家从零开始,一步步学会用Python操作金仓数据库,从环境准备、连接数据库,到CRUD核心操作、事务处理,再到常见问题排查,内容全是干货,代码拿过去就能用,就算是新手也能很快上手! 前言     中电科金仓(北京)科技股份有限公司(以下简称“电科金仓”)成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是中国电子科技集团(CETC)成员企业。电科金仓以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。     电科金仓自成立起始终坚持自主创新,专注数据库领域二十余载,具备出色的数据库产品研发及服务能力,核心产品金仓数据库管理系统KingbaseES(简称“KES”

By Ne0inhk