当前位置: 首页 > news >正文

Python3 中常用字符串函数介绍

介绍

Python 中有几个与 字符串数据类型相关的内置函数。这些函数让我们能够轻松修改和操作字符串。我们可以将函数视为在代码元素上执行的操作。内置函数是在 Python 编程语言中定义的,并且可以随时供我们使用的函数。

在本教程中,我们将介绍在 Python 3 中使用的几种不同的函数,以处理字符串。

将字符串转换为大写和小写

函数 str.upper()str.lower() 将返回一个将原始字符串的所有字母转换为大写或小写字母的字符串。由于字符串是不可变数据类型,返回的字符串将是一个新字符串。字符串中的任何非字母字符都不会更改。

让我们将字符串 Sammy Shark 转换为全部大写:

ss = "Sammy Shark"
print(ss.upper())
SAMMY SHARK

现在,让我们将字符串转换为全部小写:

print(ss.lower())
sammy shark

str.upper()str.lower() 函数使得通过使大小写一致来评估和比较字符串变得更容易。这样,如果用户以全部小写形式写他们的名字,我们仍然可以通过将其与全部大写版本进行比较来确定他们的名字是否在我们的数据库中,例如。

布尔方法

Python 具有一些字符串方法,将计算为 布尔值。当我们为用户创建填写表单时,这些方法非常有用。例如,如果我们要求邮政编码,我们只希望接受数字字符串,但当我们要求姓名时,我们只希望接受字母字符串。

有几种字符串方法将返回布尔值:

方法如果
str.isalnum()字符串仅由字母数字字符组成(没有符号)
str.isalpha()字符串仅由字母字符组成(没有符号)
str.islower()字符串的字母字符全部小写
str.isnumeric()字符串仅由数字字符组成
str.isspace()字符串仅由空白字符组成
str.istitle()字符串是标题形式
str.isupper()字符串的字母字符全部大写

让我们看一下其中几个的实际应用:

number = "5"
letters = "abcdef"print(number.isnumeric())
print(letters.isnumeric())
True
False

在字符串 5 上使用 str.isnumeric() 方法返回 True,而在字符串 abcdef 上使用相同的方法返回 False

同样,我们可以查询字符串的字母字符是小写、大写还是标题形式。让我们创建一些字符串:

movie = "2001: A SAMMY ODYSSEY"
book = "A Thousand Splendid Sharks"
poem = "sammy lived in a pretty how town"

现在让我们尝试检查标题形式的布尔方法:

print(movie.islower())
print(movie.isupper())
print(book.istitle())
print(book.isupper())
print(poem.istitle())
print(poem.islower())

现在我们可以运行这些小程序,并得到以下输出:

False
True
True
False
False
True

检查字符是小写、大写还是标题形式可以帮助我们适当地对数据进行排序,并为我们提供检查和根据需要修改字符串的标准化数据的机会。

当我们希望检查用户输入是否符合给定参数时,布尔字符串方法非常有用。

确定字符串长度

字符串函数 len() 返回字符串中的字符数。例如,当您需要强制执行最小或最大密码长度时,或将较大的字符串截断以在使用缩写时保持在某些限制范围内时,此方法非常有用。

为了演示这个方法,我们将找到一个长句子字符串的长度:

open_source = "Sammy contributes to open source."
print(len(open_source))
33

我们将变量 open_source 设置为字符串 "Sammy contributes to open source.",然后我们使用 len() 函数传递了该变量,即 len(open_source)。然后,我们将该方法传递到 print() 方法中,以便我们可以从我们的程序中在屏幕上生成输出。

请记住,len() 函数将计算由单引号或双引号括起的任何字符——包括字母、数字、空格字符和符号。

join()

split()replace() 方法

str.join()str.split()str.replace() 方法是在 Python 中操作字符串的另外几种方式。

str.join() 方法将连接两个字符串,但以一种将一个字符串通过另一个字符串传递的方式。

让我们创建一个字符串:

balloon = "Sammy has a balloon."

现在,让我们使用 str.join() 方法向该字符串添加空格,我们可以这样做:

" ".join(balloon)

如果我们将其打印出来:

print(" ".join(balloon))

我们将注意到在返回的新字符串中,在第一个字符串中间添加了空格:

[secondary_label 输出]
S a m m y   h a s   a   b a l l o o n .

我们还可以使用 str.join() 方法返回一个与原始字符串相反的字符串:

print("".join(reversed(balloon)))
.noollab a sah ymmaS

由于我们不想将另一个字符串的任何部分添加到第一个字符串,因此我们保持引号紧密相连,中间没有空格。

str.join() 方法还可以用于将字符串列表组合成一个新的单一字符串。

让我们从一个字符串列表创建一个以逗号分隔的字符串:

print(",".join(["sharks", "crustaceans", "plankton"]))
sharks,crustaceans,plankton

如果我们想在新字符串中的字符串值之间添加逗号和空格,我们可以使用空格后的逗号重写我们的表达式:", ".join(["sharks", "crustaceans", "plankton"])

与我们可以将字符串连接在一起类似,我们也可以拆分字符串。为此,我们将使用 str.split() 方法:

print(balloon.split())
['Sammy', 'has', 'a', 'balloon.']

如果未提供其他参数,则 str.split() 方法将返回由空格分隔的字符串列表。

我们还可以使用 str.split() 来删除原始字符串的某些部分。例如,让我们从字符串中删除字母 a

print(balloon.split("a"))
['S', 'mmy h', 's ', ' b', 'lloon.']

现在字母 a 已被删除,并且字符串已在每个字母 a 的位置分隔,保留了空格。

str.replace() 方法可以接受原始字符串并返回一个带有替换的更新字符串。

比方说,Sammy 失去了他的气球。由于 Sammy 不再拥有这个气球,我们将从原始字符串 balloon 中的子字符串 "has" 更改为新字符串中的子字符串 "had"

print(balloon.replace("has","had"))

在括号中,第一个子字符串是我们要替换的内容,第二个子字符串是我们要用来替换第一个子字符串的内容。我们的输出将如下所示:

Sammy had a balloon.

使用字符串方法 str.join()str.split()str.replace() 将为您提供更多控制权,以在 Python 中操作字符串。

结论

本教程介绍了在 Python 程序中使用的字符串数据类型的一些常见内置方法,用于处理和操作字符串。

相关文章:

  • 秒杀系统如何设计
  • Linux文件
  • Python - 深夜数据结构与算法之 AVL 树 红黑树
  • 案例123:基于微信小程序的在线订餐系统的设计与实现
  • 使用scipy处理图片——旋转任意角度
  • K8S--Ingress的作用
  • 结构化数据,非结构化数据,半结构化数据(AI问答)
  • 数据通信基础
  • gcd得最大公约数,辗转相除法理解
  • Dockerfile镜像实战
  • ReactHooks:渲染与useState
  • openssl3.2 - 在VS2019下源码调试openssl.exe
  • 如何通过Burp Suite专业版构建CSRF PoC
  • 【纯CSS特效源码】(二)精美的立体字
  • JavaScript基础05
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Brief introduction of how to 'Call, Apply and Bind'
  • express.js的介绍及使用
  • Java小白进阶笔记(3)-初级面向对象
  • JS变量作用域
  • laravel5.5 视图共享数据
  • Mysql5.6主从复制
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • underscore源码剖析之整体架构
  • 前端面试题总结
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 消息队列系列二(IOT中消息队列的应用)
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #数学建模# 线性规划问题的Matlab求解
  • (23)Linux的软硬连接
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)计算机毕业设计ssm电影分享网站
  • (九)信息融合方式简介
  • (排序详解之 堆排序)
  • (译)2019年前端性能优化清单 — 下篇
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)创业家杂志:UCWEB天使第一步
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core WebAPI中封装Swagger配置
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net 按比例显示图片的缩略图
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /var/spool/postfix/maildrop 下有大量文件
  • @Bean有哪些属性
  • @GlobalLock注解作用与原理解析
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [100天算法】-x 的平方根(day 61)
  • [20160902]rm -rf的惨案.txt
  • [383] 赎金信 js
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术