Python基础教程之七:Python字符串操作

在Python中,string文字是:

  • 代表Unicode字符的字节数组
  • 用单引号或双引号引起来
  • 无限长度

字符串文字

str = 'hello world'str = "hello world"

一个多行字符串使用三个单引号或三个双引号创建的。

多行字符串文字

str = '''Say helloto pythonprogramming'''str = """Say helloto pythonprogramming"""

Python没有字符数据类型,单个字符就是长度为1的字符串。

2. Substring or slicing

通过使用slice语法,我们可以获得一系列字符。索引从零开始。

str[m:n] 从位置2(包括)到5(不包括)返回字符串。

从索引2到5的子字符串

str = 'hello world'print(str[2:5]) # llo

负切片将从末尾返回子字符串。

子串从索引-5到-2

str = 'hello world'print(str[-5:-2])   # worstr[-m:-n] 将字符串从位置-5(不包括)返回到-2(包括)。

3. Strings as arrays

在python中,字符串表现为数组。方括号可用于访问字符串的元素。

字符在第n个位置

str = 'hello world'print(str[0])   # hprint(str[1])   # eprint(str[2])   # lprint(str[20])  # IndexError: string index out of range

4. String length

len()函数返回字符串的长度:

字符串长度

str = 'hello world'print(len(str)) # 11

5. String Formatting

要在python中格式化s字符串,请{ }在所需位置在字符串中使用占位符。将参数传递给format()函数以使用值格式化字符串。

我们可以在占位符中传递参数位置(从零开始)。

字符串格式()

age = 36name = 'Lokesh'txt = "My name is {} and my age is {}"print(txt.format(name, age))    # My name is Lokesh and my age is 36txt = "My age is {1} and the name is {0}"print(txt.format(name, age))    # My age is 36 and the name is Lokesh

6. String Methods

6.1. capitalize()

它返回一个字符串,其中给定字符串的第一个字符被转换为大写。当第一个字符为非字母时,它将返回相同的字符串。

字符串大写()

name = 'lokesh gupta'print( name.capitalize() )  # Lokesh guptatxt = '38 yrs old lokesh gupta'print( txt.capitalize() )   # 38 yrs old lokesh gupta
6.2. casefold()

它返回一个字符串,其中所有字符均为给定字符串的小写字母。

字符串casefold()

txt = 'My Name is Lokesh Gupta'print( txt.casefold() ) # my name is lokesh gupta
6.3. center()

使用指定的字符(默认为空格)作为填充字符,使字符串居中对齐。

在给定的示例中,输出总共需要20个字符,而“ hello world”位于其中。

字符串中心

txt = "hello world"x = txt.center(20)print(x)    # '    hello world     '
6.4. count()

它返回指定值出现在字符串中的次数。它有两种形式:

 count(value) - value to search for in the string.  count(value, start, end) - value to search for in the string, where search starts from start position till end position.

字符串数()

txt = "hello world"print( txt.count("o") )         # 2print( txt.count("o", 4, 7) )   # 1
6.5. encode()

它使用指定的编码对字符串进行编码。如果未指定编码,UTF-8将使用。

字符串encode()

txt = "My name is åmber"x = txt.encode()print(x)    # b'My name is \xc3\xa5mber'
6.6. endswith()

True如果字符串以指定值结尾,则返回,否则返回False。

字符串endswith()

txt = "hello world"print( txt.endswith("world") )      # Trueprint( txt.endswith("planet") )     # False
6.7. expandtabs()

它将制表符大小设置为指定的空格数。

字符串expandtabs()

txt = "hello\tworld"print( txt.expandtabs(2) )      # 'hello world'print( txt.expandtabs(4) )      # 'hello   world'print( txt.expandtabs(16) )     # 'hello           world'
6.8. find()

它查找指定值的第一次出现。-1如果字符串中没有指定的值,它将返回。

find()与index()方法相同,唯一的区别是,index()如果找不到该值,该方法将引发异常。

字符串find()

txt = "My name is Lokesh Gupta"x = txt.find("e")print(x)        # 6
6.9. format()

它格式化指定的字符串,并在字符串的占位符内插入参数值。

字符串格式()

age = 36name = 'Lokesh'txt = "My name is {} and my age is {}"print( txt.format(name, age) )  # My name is Lokesh and my age is 36
6.10. format_map()

它用于返回字典键的值,以格式化带有命名占位符的字符串。

字符串format_map()

params = {'name':'Lokesh Gupta', 'age':'38'}txt = "My name is {name} and age is {age}"x = txt.format_map(params)print(x)        # My name is Lokesh Gupta and age is 38
6.11. index()
  • 它在给定的字符串中查找指定值的第一次出现。
  • 如果找不到要搜索的值,则会引发异常。

字符串index()

txt = "My name is Lokesh Gupta"x = txt.index("e")print(x)        # 6x = txt.index("z")  # ValueError: substring not found
6.12. isalnum()

它检查字母数字字符串。True如果所有字符都是字母数字,即字母(a-zA-Z)和数字,它将返回(0-9)。

字符串isalnum()

print("LokeshGupta".isalnum())      # Trueprint("Lokesh Gupta".isalnum())     # False - Contains space
6.13. isalpha()

True如果所有字符都是字母,则返回它,即字母(a-zA-Z)。

字符串isalpha()

print("LokeshGupta".isalpha())          # Trueprint("Lokesh Gupta".isalpha())         # False - Contains spaceprint("LokeshGupta38".isalpha())        # False - Contains numbers
6.14. isdecimal()

如果所有字符均为小数(0-9),则返回代码。否则返回False。

字符串isdecimal()

print("LokeshGupta".isdecimal())    # Falseprint("12345".isdecimal())          # Trueprint("123.45".isdecimal())         # False - Contains 'point'print("1234 5678".isdecimal())      # False - Contains space
6.15. isdigit()

True如果所有字符都是数字,则返回,否则返回False。指数也被认为是数字。

字符串isdigit()

print("LokeshGupta".isdigit())      # Falseprint("12345".isdigit())            # Trueprint("123.45".isdigit())           # False - contains decimal pointprint("1234\u00B2".isdigit())       # True - unicode for square 2
6.16. isidentifier()

True如果字符串是有效的标识符,则返回,否则返回False。

有效的标识符仅包含字母数字字母(a-z)和(0-9)或下划线( _ )。它不能以数字开头或包含任何空格。

字符串isidentifier()

print( "Lokesh_Gupta_38".isidentifier() )       # Trueprint( "38_Lokesh_Gupta".isidentifier() )       # False - Start with numberprint( "_Lokesh_Gupta".isidentifier() )         # Trueprint( "Lokesh Gupta 38".isidentifier() )       # False - Contain spaces
6.17. islower()

True如果所有字符均小写,则返回,否则返回False。不检查数字,符号和空格,仅检查字母字符。

字符串islower()

print( "LokeshGupta".islower() )        # Falseprint( "lokeshgupta".islower() )        # Trueprint( "lokesh_gupta".islower() )       # Trueprint( "lokesh_gupta_38".islower() )    # True
6.18. isnumeric()

True如果所有字符都是数字(0-9),则it方法返回,否则返回False。指数也被认为是数值。

字符串isnumeric()

print("LokeshGupta".isnumeric())    # Falseprint("12345".isnumeric())          # Trueprint("123.45".isnumeric())         # False - contains decimal pointprint("1234\u00B2".isnumeric())     # True - unicode for square 2
6.19. isprintable()

它返回True,如果所有字符都打印,否则返回False。不可打印字符用于指示某些格式化操作,例如:

  • 空白(被视为不可见的图形)
  • 回车
  • 标签
  • 换行
  • 分页符
  • 空字符

字符串isprintable()

print("LokeshGupta".isprintable())      # Trueprint("Lokesh Gupta".isprintable())     # Trueprint("Lokesh\tGupta".isprintable())    # False
6.20. isspace()

True如果字符串中的所有字符都是空格,则返回,否则返回False。

6.21. istitle()

它返回True如果文本的所有单词以大写字母开头,字的其余均为小写字母,即标题案例。否则False。

字符串istitle()

print("Lokesh Gupta".istitle())     # Trueprint("Lokesh gupta".istitle())     # False
6.22. isupper()

True如果所有字符均大写,则返回,否则返回False。不检查数字,符号和空格,仅检查字母字符。

字符串isupper()

print("LOKESHGUPTA".isupper())      # Trueprint("LOKESH GUPTA".isupper())     # Trueprint("Lokesh Gupta".isupper())     # False
6.23. join()

它以可迭代方式获取所有项目,并使用强制性指定的分隔符将它们连接为一个字符串。

字符串join()

myTuple = ("Lokesh", "Gupta", "38")x = "#".join(myTuple)print(x)    # Lokesh#Gupta#38
6.24. ljust()

此方法将使用指定的字符(默认为空格)作为填充字符使字符串左对齐。

字符串ljust()

txt = "lokesh"x = txt.ljust(20, "-")print(x)    # lokesh--------------
6.25. lower()

它返回一个字符串,其中所有字符均为小写。符号和数字将被忽略。

字符串lower()

txt = "Lokesh Gupta"x = txt.lower()print(x)    # lokesh gupta
6.26. lstrip()

它删除所有前导字符(默认为空格)。

字符串lstrip()

txt = "#Lokesh Gupta"x = txt.lstrip("#_,.")print(x)    # Lokesh Gupta
6.27. maketrans()

它创建一个字符到其转换/替换的一对一映射。当在translate()方法中使用时,此翻译映射随后用于将字符替换为其映射的字符。

字符串maketrans()

dict = {"a": "123", "b": "456", "c": "789"}string = "abc"print(string.maketrans(dict))   # {97: '123', 98: '456', 99: '789'}
6.28. partition()

它在给定的文本中搜索指定的字符串,并将该字符串拆分为包含三个元素的元组:

  • 第一个元素包含指定字符串之前的部分。
  • 第二个元素包含指定的字符串。
  • 第三个元素包含字符串后面的部分。

字符串partition()

txt = "my name is lokesh gupta"x = txt.partition("lokesh")print(x)    # ('my name is ', 'lokesh', ' gupta')print(x[0]) # my name isprint(x[1]) # lokeshprint(x[2]) #  gupta
6.29. replace()

它将指定的短语替换为另一个指定的短语。它有两种形式:

  • string.replace(oldvalue, newvalue)
  • string.replace(oldvalue, newvalue, count)–“计数”指定要替换的出现次数。默认为所有事件。

字符串replace()

txt = "A A A A A"x = txt.replace("A", "B")print(x)    # B B B B Bx = txt.replace("A", "B", 2)print(x)    # B B A A A
6.30. rfind()

它查找指定值的最后一次出现。-1如果在给定的文本中找不到该值,则返回该值。

字符串rfind()

txt = "my name is lokesh gupta"x = txt.rfind("lokesh")    print(x)        # 11x = txt.rfind("amit")      print(x)        # -1
6.31. rindex()

它查找指定值的最后一次出现,如果找不到该值,则引发异常。

字符串rindex()

txt = "my name is lokesh gupta"x = txt.rindex("lokesh")       print(x)                # 11x = txt.rindex("amit")  # ValueError: substring not found
6.32. rjust()

它将使用指定的字符(默认为空格)作为填充字符来右对齐字符串。

字符串rjust()

txt = "lokesh"x = txt.rjust(20,"#")print(x, "is my name")  # ##############lokesh is my name
6.33. rpartition()

它搜索指定字符串的最后一次出现,并将该字符串拆分为包含三个元素的元组。

  • 第一个元素包含指定字符串之前的部分。
  • 第二个元素包含指定的字符串。
  • 第三个元素包含字符串后面的部分。

字符串rpartition()

txt = "my name is lokesh gupta"x = txt.rpartition("lokesh")print(x)    # ('my name is ', 'lokesh', ' gupta')print(x[0]) # my name isprint(x[1]) # lokeshprint(x[2]) #  gupta
6.34. rsplit()

它将字符串从右开始拆分为一个列表。

字符串rsplit()

txt = "apple, banana, cherry"x = txt.rsplit(", ")print(x)    # ['apple', 'banana', 'cherry']
6.35. rstrip()

它删除所有结尾字符(字符串末尾的字符),空格是默认的结尾字符。

字符串rstrip()

txt = "     lokesh     "x = txt.rstrip()print(x)    # '     lokesh'
6.36. split()

它将字符串拆分为列表。您可以指定分隔符。默认分隔符为空格。

字符串split()

txt = "my name is lokesh"x = txt.split()print(x)    # ['my', 'name', 'is', 'lokesh']
6.37. splitlines()

通过在换行符处进行拆分,它将字符串拆分为列表。

字符串splitlines()

txt = "my name\nis lokesh"x = txt.splitlines()print(x)    # ['my name', 'is lokesh']
6.38. startswith()

True如果字符串以指定值开头,则返回,否则返回False。字符串比较区分大小写。

字符串startswith()

txt = "my name is lokesh"print( txt.startswith("my") )   # Trueprint( txt.startswith("My") )   # False
6.39. strip()

它将删除所有前导(开头的空格)和结尾(结尾的空格)字符(默认为空格)。

字符串strip()

txt = "   my name is lokesh   "print( txt.strip() )    # 'my name is lokesh'
6.40. swapcase()

它返回一个字符串,其中所有大写字母均为小写字母,反之亦然。

字符串swapcase()

txt = "My Name Is Lokesh Gupta"print( txt.swapcase() ) # mY nAME iS lOKESH gUPTA
6.41. title()

它返回一个字符串,其中每个单词的第一个字符均为大写。如果单词开头包含数字或符号,则其后的第一个字母将转换为大写字母。

字符串标题()

print( "lokesh gupta".title() ) # Lokesh Guptaprint( "38lokesh gupta".title() )   # 38Lokesh Guptaprint( "1. lokesh gupta".title() )  # Lokesh Gupta
6.42. translate()

它需要转换表来根据映射表替换/翻译给定字符串中的字符。

字符串translate()

translation = {97: None, 98: None, 99: 105}string = "abcdef"  print( string.translate(translation) )  # idef
6.43. upper()

它返回一个字符串,其中所有字符均为大写。符号和数字将被忽略。

字符串upper()

txt = "lokesh gupta"print( txt.upper() )    # LOKESH GUPTA
6.44. zfill()

它在字符串的开头添加零(0),直到达到指定的长度。

字符串zfill()

txt = "100"x = txt.zfill(10)print( 0000000100 ) # 0000000100

祝:学习愉快、工作顺利!

关注公众号「码农园区」,获取程序员大礼包
在这里插入图片描述

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

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

相关文章

Spring Cloud - 通过 Gateway webflux 编程实现网关异常处理

一、webflux 编程实现网关异常处理 我们知道在某一个服务中出现异常,可以通过 ControllerAdvice ExceptionHandler 来统一异常处理,即使是在微服务架构中,我们也可以将上述统一异常处理放入到公共的微服务中,这样哪一个微服务需要…

LangChain之关于RetrievalQA input_variables 的定义与使用

最近在使用LangChain来做一个LLMs和KBs结合的小Demo玩玩,也就是RAG(Retrieval Augmented Generation)。 这部分的内容其实在LangChain的官网已经给出了流程图。 我这里就直接偷懒了,准备对Webui的项目进行复刻练习,那么…

多语言多商户多货币跨境电商商城源码(一键铺货\订单返现商城源码搭建开发)

随着全球化的加速和互联网的蓬勃发展,跨境电商已成为越来越多企业的必经之路。如何在竞争激烈的市场中脱颖而出,实现多语言、多商户的跨境商城运营,成为了很多电商企业亟待解决的问题。今天,我们将为您揭示一款多语言多商户跨境商…

2023年11月数据库流行度最新排名

点击查看最新数据库流行度最新排名(每月更新) 2023年11月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

开源DB-GPT实现连接数据库详细步骤

官方文档:欢迎来到DB-GPT中文文档 — DB-GPT 👏👏 0.4.1 第一步:安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步:安装Git Git - Downloading Package 第三步:安装embedding 模型到…

seata事务回滚引起的skywalking数据库存储空间剧增的问题排查

基本信息 产品名称:ATS3.0 问题分类:编码问题 环境类型:环境无关 问题现象 11月1日上午华润DBA收到数据库磁盘空间告警,检查后发现skywalking连接的mysql数据库占用空间从之前一直是比较稳定的,但是10月31日…

antd Form 校验自定义复杂判断-validator

antd Form 校验 加入自定义复杂逻辑 <Form.Itemlabel"编码"name"code"rules{[{required: true,validator: (_rule, value) > {if (value ) {return Promise.reject(请输入编码);}return IsExist(value).then((res) > {if (res?.statusCode 20…

强化学习中广义策略迭代

一、广义策略迭代 策略迭代包括两个同时进行的交互过程&#xff0c;一个使价值函数与当前策略保持一致&#xff08;策略评估&#xff09;&#xff0c;另一个使策略在当前价值函数下变得贪婪&#xff08;策略改进&#xff09;。在策略迭代中&#xff0c;这两个过程交替进行&…

【Qt之QAssociativeIterable】使用

介绍 QAssociativeIterable类是QVariant中一个关联式容器的可迭代接口。这个类允许多种访问在QVariant中保存的关联式容器元素的方法。如果一个QVariant可以转换为QVariantHash或QVariantMap&#xff0c;那么QAssociativeIterable的实例可以从中提取出来。 QHash<int, QSt…

软件版本控制系统VCS工具——cvs vss svn git

版本控制 版本控制系统&#xff08;Version Control System&#xff0c;VCS&#xff09;是用于跟踪和管理源代码和文档的工具。可追踪和管理修改历史&#xff0c;包括修改的内容、时间、作者等信息。有助于团队协作、追踪变更、恢复历史版本等。VCS的主要目的是帮助团队协作开…

电脑如何截屏?一起来揭晓答案!

在数字时代&#xff0c;截屏已经成为我们日常生活和工作中的必备技能。无论是为了捕捉有趣的网络瞬间&#xff0c;保存重要信息&#xff0c;还是为了协作和教育&#xff0c;电脑截屏都是一个强大而方便的工具。本文将介绍三种电脑如何截屏的方法&#xff0c;以满足各种需求&…

研发管理工具选型要考虑哪些内容?

研发管理工具选型要考虑哪些内容&#xff1f; 研发管理工具选型需要考虑六个因素&#xff0c;分别是&#xff1a;1、功能性&#xff1b;2、非功能性&#xff1b;3、易用性&#xff1b;4、产品价格&#xff1b;5、服务&#xff1b;6、厂商。其中功能性在研发管理工具选型过程中是…

精美好看又便于分享的电子相册制作,谁看了不心动呢?

很多人都喜欢用相机记录生活中的点点滴滴&#xff0c;可是当要分享到朋友圈的时候&#xff0c;觉得这张也好看&#xff0c;那张也不错&#xff0c;如果全部分享出去就霸屏了&#xff0c;然后就不知道怎么选择了。其实&#xff0c;我们可以把这些照片做成电子相册&#xff0c;然…

docker可视化

什么是portainer&#xff1f; portainer就是docker图形化界面的管理工具&#xff0c;提供一个后台面板供我们操作 目前先用portainer(先用这个)&#xff0c;以后还会用到Rancher(CI/CD在用) 1.下载portainer 9000是内网端口&#xff0c;8088是外网访问端口 docker run…

对话凯文·凯利:AI 会取代人的 90% 技能,并放大剩余的 10%

采访 | 邹欣&#xff0c;CSDN 副总裁 作者 | 王启隆 责编 | 唐小引 出品 | 《新程序员》编辑部 5000 天后&#xff0c;你都会做些什么&#xff1f; 是和 AI 助手一起编程&#xff0c;还是让生活完全由 AI 掌控&#xff0c;自己坐享其成&#xff1f;如果到时候还要上班&a…

采购劳保鞋如何选择合适的尺码

今天在某问答平台看到了这么一个话题&#xff0c;平常皮鞋穿40码&#xff0c;运动鞋穿41码&#xff0c;劳保鞋如何选择合适的尺码&#xff1f;小编发现很多朋友在选购劳保鞋的时候&#xff0c;对劳保鞋的尺码了解不是很清楚都会在这一块纠结。选择鞋子脚感舒适很重要&#xff0…

射频功率放大器应用中GaN HEMT的表面电势模型

标题&#xff1a;A surface-potential based model for GaN HEMTs in RF power amplifier applications 来源&#xff1a;IEEE IEDM 2010 本文中的任何第一人称都为论文的直译 摘要&#xff1a;我们提出了第一个基于表面电位的射频GaN HEMTs紧凑模型&#xff0c;并将我们的工…

如何在Linux上搭建本地Docker Registry并实现远程连接

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…

C# OpenCvSharp 通过特征点匹配图片

SIFT匹配 SURF匹配 项目 代码 using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text.RegularExpressions; using System.Windows.Forms; using static System.Net…

企业防范数据安全的重要性与策略

随着信息技术的快速发展&#xff0c;企业的数据安全问题日益凸显。数据安全不仅关乎企业的商业机密&#xff0c;还涉及到客户的隐私和信任。因此&#xff0c;企业必须采取有效的防范措施&#xff0c;确保数据安全。本文将探讨企业防范数据安全的重要性&#xff0c;并介绍一些实…