Python进阶语法之字符串

news2024/11/20 14:20:47

Python进阶语法之字符串

当我们处理文本数据时,字符串是不可避免的数据类型。Python 提供了很多字符串方法,它们可以帮助我们更方便地操作和处理字符串。在本篇博客中,我们将深入探讨 Python 字符串。
在这里插入图片描述

字符串的基本操作

在深入了解字符串方法之前,我们首先要了解一些基本的字符串操作,例如索引、切片和拼接。

  • 索引:我们可以通过索引来访问字符串中的单个字符。
s = 'hello'
print(s[1])  # 输出: 'e'
  • 切片:我们可以使用切片来获取字符串的子串。
s = 'hello'
print(s[1:3])  # 输出: 'el'
  • 拼接:我们可以使用+操作符来拼接两个字符串。
s1 = 'hello'
s2 = 'world'
print(s1 + s2)  # 输出: 'helloworld'

字符串的方法

在 Python 中,字符串是一个不可变对象。这意味着一旦我们定义了一个字符串,就不能直接修改它的值。但是,我们可以使用字符串方法来对字符串进行各种操作,例如查找子字符串、替换子字符串、拼接字符串等等。下面是一些常用的字符串方法:

  • str.capitalize():把字符串的第一个字符转换为大写字母。

  • str.casefold():把字符串中所有字符转换为小写字母,并返回转换后的字符串。该方法比 str.lower() 更强大,因为它可以正确处理某些特殊字符(例如德语中的 eszett)。

  • str.center(width[, fillchar]):返回一个指定宽度的居中对齐的字符串,如果指定的宽度小于字符串长度,则返回原字符串。

  • str.count(sub[, start[, end]]):返回字符串中子字符串 sub 出现的次数,可选参数 start 和 end 指定查找范围。

  • str.encode([encoding[, errors]]):返回字符串的字节串表示。如果指定了编码方式(例如 ‘utf-8’),则按照该编码方式进行编码。可选参数 errors 指定编码错误处理方式。

  • str.endswith(suffix[, start[, end]]):检查字符串是否以指定的后缀 suffix 结束。可选参数 start 和 end 指定查找范围。

  • str.expandtabs([tabsize]):把字符串中的制表符(‘\t’)替换为指定数量的空格,默认为 8。

  • str.find(sub[, start[, end]]):在字符串中查找子字符串 sub,返回它在字符串中第一次出现的位置。如果未找到,则返回 -1。可选参数 start 和 end 指定查找范围。

  • str.format(*args, **kwargs):使用传递给它的参数格式化字符串(类似于 printf() 函数)。

  • str.index(sub[, start[, end]]):在字符串中查找子字符串 sub,返回它在字符串中第一次出现的位置。如果未找到,则引发 ValueError 异常。可选参数 start 和 end 指定查找范围。

  • str.isalnum():检查字符串是否只包含字母和数字。

  • str.isalpha():检查字符串是否只包含字母。

  • str.isdecimal():检查字符串是否只包含十进制数字。

  • str.isdigit():检查字符串是否只包含数字字符。

  • str.isidentifier():检查字符串是否是一个有效的 Python 标识符。

  • str.islower():检查字符串中所有字母是否都是小写字母。

  • str.isnumeric():检查字符串是否只包含数字字符。

  • str.isprintable():检查字符串中的所有字符是否都是可打印字符,例如空格、标点符号、字母和数字等。

  • str.isspace():检查字符串是否只包含空格字符。

  • str.istitle():检查字符串中所有单词的首字母是否都是大写字母。

  • str.isupper():检查字符串中所有字母是否都是大写字母。

  • str.join(iterable):把可迭代对象 iterable 中的元素连接成一个字符串,并返回结果。例如,','.join(['a','b','c']) 返回 ‘a,b,c’。

  • str.ljust(width[, fillchar]):返回一个指定宽度的左对齐的字符串,如果指定的宽度小于字符串长度,则返回原字符串。

  • str.lower():返回字符串中所有字母的小写形式。str.lstrip([chars]):返回一个去掉字符串开头指定字符(chars)的字符串。如果未指定字符,则默认去掉空格字符。

  • str.partition(sep):在字符串中查找分隔符 sep,返回一个以分隔符为界的左侧子字符串、分隔符本身和右侧子字符串的元组。如果未找到分隔符,则返回包含原始字符串和两个空字符串的元组。

  • str.replace(old, new[, count]):返回一个把字符串中所有旧子字符串 old 替换为新子字符串 new 的字符串。可选参数 count 指定替换次数。

  • str.rfind(sub[, start[, end]]):与 str.find() 方法类似,但是从字符串末尾开始查找。

  • str.rindex(sub[, start[, end]]):与 str.index() 方法类似,但是从字符串末尾开始查找。

  • str.rjust(width[, fillchar]):返回一个指定宽度的右对齐的字符串,如果指定的宽度小于字符串长度,则返回原字符串。

  • str.rpartition(sep):与 str.partition() 方法类似,但是从右侧开始查找分隔符。

  • str.rsplit([sep[, maxsplit]]):返回一个把字符串按照指定分隔符(sep)进行分割的列表。如果未指定分隔符,则默认使用空白字符作为分隔符。可选参数 maxsplit 指定最大分割次数。

  • str.rstrip([chars]):返回一个去掉字符串末尾指定字符(chars)的字符串。如果未指定字符,则默认去掉空格字符。

  • str.split([sep[, maxsplit]]):返回一个把字符串按照指定分隔符(sep)进行分割的列表。如果未指定分隔符,则默认使用空白字符作为分隔符。可选参数 maxsplit 指定最大分割次数。

  • str.splitlines([keepends]):返回一个把字符串按照行分隔符(‘\n’)进行分割的列表。如果 keepends 参数为 True,则保留行分隔符。

  • str.startswith(prefix[, start[, end]]):检查字符串是否以指定的前缀 prefix 开头。可选参数 start 和 end 指定查找范围。

  • str.strip([chars]):返回一个去掉字符串开头和末尾指定字符(chars)的字符串。如果未指定字符,则默认去掉空格字符。

  • str.swapcase():返回一个将字符串中所有小写字母转换为大写字母,所有大写字母转换为小写字母的字符串。

  • str.title():返回一个把字符串中每个单词的首字母转换为大写字母的字符串。

  • str.translate(table):返回一个根据给定转换表(table)进行转换后的字符串。转换表可以通过 str.maketrans() 方法创建。

  • str.upper():返回字符串中所有字母的大写形式。

  • str.zfill(width):返回一个指定宽度的右对齐的字符串,左侧用 ‘0’ 填充。如果指定的宽度小于字符串长度,则返回原字符串。

    字符串方法的举例说明

    1. capitalize():把字符串第一个字符大写。
    str = "hello world"
    print(str.capitalize()) # 输出:Hello world
    
    1. lower():把字符串所有字符转换为小写。
    str = "Hello World"
    print(str.lower()) # 输出:hello world
    
    1. upper():把字符串所有字符转换为大写。
    str = "hello world"
    print(str.upper()) # 输出:HELLO WORLD
    
    1. title():把字符串每个单词首字母都变成大写。
    str = "this is an example"
    print(str.title()) # 输出:This Is An Example
    
    1. strip():去除字符串前后的空格。
    str = "   hello world   "
    print(str.strip()) # 输出:hello world
    
    1. replace():替换字符串中指定的子串。
    str = "hello world"
    print(str.replace("world", "Python")) # 输出:hello Python
    
    1. split():把字符串按照指定分隔符分割成列表。
    str = "apple,banana,orange,grape"
    print(str.split(",")) # 输出:['apple', 'banana', 'orange', 'grape']
    
    1. join():把列表中的字符串使用指定分隔符连接起来。
    lst = ['apple', 'banana', 'orange', 'grape']
    sep = ","
    print(sep.join(lst)) # 输出:apple,banana,orange,grape
    
    1. startswith():判断字符串是否以指定子串开头。
    str = "hello world"
    print(str.startswith("hello")) # 输出:True
    
    1. endswith():判断字符串是否以指定子串结尾。
    str = "hello world"
    print(str.endswith("world")) # 输出:True
    
    1. find():查找指定子串在字符串中第一次出现的位置。
    str = "hello world"
    print(str.find("world")) # 输出:6
    
    1. count():统计指定子串在字符串中出现的次数。
    str = "hello world"
    print(str.count("l")) # 输出:3
    
    1. isdigit():判断字符串是否只包含数字字符。
    str = "12345"
    print(str.isdigit()) # 输出:True
    
    1. isalpha():判断字符串是否只包含字母字符。
    str = "hello"
    print(str.isalpha()) # 输出:True
    
    1. isalnum():判断字符串是否只包含字母和数字字符。
    str = "hello123"
    print(str.isalnum()) # 输出:True
    
    1. islower():判断字符串是否只包含小写字母。
    str = "hello"
    print(str.islower()) # 输出:True
    
    1. isupper():判断字符串是否只包含大写字母。
    str = "HELLO"
    print(str.isupper()) # 输出:True
    
    1. isspace():判断字符串是否只包含空格字符。
    str = "    "
    print(str.isspace()) # 输出:True
    
    1. startswith():判断字符串是否以指定子串开头。
    str = "hello world"
    print(str.startswith("hello")) # 输出:True
    
    1. endswith():判断字符串是否以指定子串结尾。
    str = "hello world"
    print(str.endswith("world")) # 输出:True
    
    1. encode():将字符串编码为指定格式的字节序列。
    str = "你好世界"
    print(str.encode("utf-8")) # 输出:b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c'
    
    1. decode():将指定格式的字节序列解码为字符串。
    bytes = b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c'
    print(bytes.decode("utf-8")) # 输出:你好世界
    
    1. format():根据指定格式输出字符串。
    name = "Tom"
    age = 18
    print("My name is {0} and I'm {1} years old".format(name, age)) # 输出:My name is Tom and I'm 18 years old
    
    1. isnumeric():判断字符串是否只包含数字字符。
    str = "12345"
    print(str.isnumeric()) # 输出:True
    
    1. isdecimal():判断字符串是否只包含十进制数字字符。
    str = "12345"
    print(str.isdecimal()) # 输出:True
    

总结

  1. 字符串的定义:使用单引号、双引号或三重引号来定义一个字符串,例如:‘hello’、“world”、‘’‘This is a multiline string.’‘’
  2. 字符串的连接(拼接):使用加号(+)或逗号(,)将两个字符串连接在一起。
  3. 字符串的重复:使用乘号(*)将一个字符串重复多次。
  4. 获取字符串长度:使用len()函数获取一个字符串的长度。
  5. 获取字符串中的字符:使用索引可以获取字符串中某个位置上的字符,注意字符串是从0开始索引的。例如:s = “hello”,s[0]为’h’。
  6. 字符串切片:使用[start🔚step]语法可以获取字符串的一个子串。start表示子串的起始位置,end表示子串的结束位置(不包含该位置处的字符),step表示步长,默认为1。例如:s = “hello”,s[1:4]为"ell"。
  7. 字符串的分割:使用split()方法可以将一个字符串按照指定的分隔符进行分割成多个子串,并返回一个列表。例如:s = “hello world”,s.split(’ ')将返回[‘hello’, ‘world’]。
  8. 字符串的替换:使用replace()方法可以将一个字符串中的某个子串替换成另一个字符串。例如:s = “hello world”,s.replace(‘world’, ‘python’)将返回"hello python"。
  9. 字符串的查找:使用find()或index()方法可以查找一个字符串中某个子串的位置。find()方法返回子串第一次出现的位置,如果未找到则返回-1;index()方法也返回子串第一次出现的位置,但如果未找到会抛出异常。
  10. 字符串的大小写转换:使用lower()、upper()、capitalize()等方法可以将一个字符串全部转换成小写、大写、首字母大写等形式。
  11. 去除字符串两端的空格:使用strip()方法可以去除一个字符串两端的空格,lstrip()和rstrip()方法分别去除左侧和右侧的空格。
  12. 字符串的格式化:使用format()方法可以将一些变量的值插入到一个格式化的字符串中。例如:“My name is {0}, I am {1} years old.”.format(“Tom”, 18)。
  13. 判断字符串是否以指定的前缀或后缀开始/结束:使用startswith()和endswith()方法可以判断一个字符串是否以指定的前缀或后缀开始/结束。
  14. 判断字符串是否由数字或字母构成:使用isdigit()和isalpha()方法可以判断一个字符串是否只由数字或字母构成。

在本篇博客中,我们深入探讨了 Python 字符串方法,并提供了丰富的示例。掌握这些字符串方法可以使我们更方便地操作和处理字符串。

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

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

相关文章

亚马逊云科技 | Summit - 中国峰会

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 亚马逊云科技 | Summit - 中国峰会 亚马逊云科技提供全球覆盖广泛、服务深入的云平台,全球数据中心提供超过 200 项功能齐全的服务连续 11 年被 Gartner 评…

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对…

[游戏开发]Unity颜色矫正无障碍方案

[目录] 0. 前言1. 颜色矫正2. 线性变换Shader2. 颜色纠正参数3. 摄像机后处理4. 效果5. 结束咯 0. 前言 之前有在关注色盲视觉纠正问题,最近在调整游戏的时候就打算把这个用上。 色弱色盲,这其实算是一种误称吧,只是人类中的少数派&#xf…

保护您的数据与ManageEngine Log360

在当今数字时代,网络安全成为了企业和组织不可忽视的重要议题。随着信息技术的发展和互联网的普及,企业面临着越来越多的网络威胁和数据泄露的风险。为了保护重要的数据资产和防止潜在的攻击,日志管理和事件关联成为了至关重要的一环。 Mana…

IIS安装ARR(Application Request Router)负载均衡扩展

IIS7.5安装ARR(Application Request Router)负载均衡扩展 本文主要记录我在IIS中安装ARR的全流程,本文参考了网上一些教程,但可能时间关系,与一些早期文章所述有所出入。 花了我半天的时间才最终安装成功,因此这里做一个记录。本…

立体解析Fiddler Filters:让你快速捕获和过滤网络请求

如果要对当前Fiddler的抓包进行过滤(如过滤掉与测试项目无关的抓包请求),那功能强大的 Filters 过滤器能帮到你。 如果你想学习Fiddler抓包工具,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的Fiddler抓包…

动态规划算法(多状态dp1)

动态规划算法专辑之多状态dp问题(1) 一、什么是多状态 多状态dp问题,指一个规模问题下存在多种状态,我们需要联合关注多种状态间的相互转移,才可以求解目的问题。 多状态问题可以理解为有限状态机,在有限…

节省时间、提升效率——Jetpack关爱你的摸鱼时间

JetPack Jetpack 是一个由 Google 提供的 Android 应用开发库集合。它旨在简化 Android 应用程序开发过程,提供一系列的库和工具,帮助开发者快速构建高质量、健壮、可扩展的 Android 应用。 Jetpack 包含多个组件,每个组件都专注于不同的功…

Nginx 的reload,升级以及关闭流程

一、reload流程 1 向master进程发送HUP信号(reload命令) 2 master进程校验配置语法是否正确; 3 master打开可能引入的新的监听端口; 4 master用新的配置文件启动新的worker子进程; 5 启动新的worker子进程之后&#x…

小马赠书【第8期】清华社 618 IT BOOK 多得活动(送书5本)

本期 敬 之 共精心挑选了 15 本 IT 相关书籍,包含 前端、后端、数据分析、人工智能、python 等各个领域。关于如何参与等具体活动信息请看活动详情页,以下是 15 本 IT 书籍介绍: 活动详情页:小马赠书【第8期】 1. 《Linux设备驱动…

怎么入手性能测试,重点以及各项流程

之前在性能测试学习路线里,提到过《软件性能测试、分析与调优实践之路》这本书。 昨天看到之前自己记的读书笔记,整理一下发出来,希望对读者有所帮助。 网上关于性能测试的文章大多数时间比较久远,或者知识点比较散,…

南大一作!科学家发现全新量子态 | Nature速递

光子盒研究院 马萨诸塞大学助理教授Tigran Sedrakyan在内的一个物理学家团队最近在《自然》杂志上宣布,他们已经发现了一种新的物质阶段——“手性玻色液态(chiral Bose-liquid state)”,这一突破为理解物理世界本质的古老努力开辟了一条全新道路。 团队…

【目标跟踪】MOT数据集GroundTruth可视化

MOT数据集格式简介 MOT15数据集下载&#xff1a;https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?pwd8888 以下为一行gt示例&#xff1a; 1,1,1367,393,73,225,1,-1,-1,-1 各列数据对应含义如下 <frame>,<id>,<bb_left>,<bb_top>,<bb_width&g…

autocut

在讲 OpenAI Whisper 前先做了一个剪视频小工具【论文精读44】_哔哩哔哩_bilibili更多论文&#xff1a;https://github.com/mli/paper-reading, 视频播放量 58633、弹幕量 233、点赞数 2732、投硬币枚数 1630、收藏人数 1465、转发人数 604, 视频作者 跟李沐学AI, 作者简介 &am…

什么是python,一篇带你详细了解Python

Python是一种跨平台的计算机程序设计语言&#xff0c;是ABC语言的替代品&#xff0c;属于面向对象的动态类型语言&#xff0c;最初被设计用于编写自动化脚本&#xff0c;随着版本的不断更新和语言新功能的添加&#xff0c;越来越多被用于独立的、大型项目的开发。 python前景…

挖掘用户真实需求 避坑5大技巧

1、用户总是“说一套 做一套” 在进行需求市场调研时&#xff0c;我们问1000个用户&#xff0c;是否想要黄金&#xff0c;几乎所有的用户都是肯定的回答。如果我们以此认定&#xff0c;黄金是用户的真实需求会过于草率。 我们需继续追问用户&#xff1a;买黄金做什么&#xff1…

【微信小程序开发】第 7 课 - 小程序的组件

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、小程序中组件的分类 3、常用的视图容器类组件 3.1、view 组件 3.2、scroll - view 组件 3.3、swiper 和 swiper…

【youcans动手学模型】Xception 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】Xception 模型-CIFAR10图像分类 1. Xception 神经网络模型1.1 模型简介1.2 论文介绍1.3 分析与讨论 2. 在 PyTorch 中定义 Xception 模型类2.1 深度可分离卷积2.2 带残差连接的…

【九章斩题录】从尾到头打印链表(JZ6)

精品题解 &#x1f525; 《九章斩题录》 &#x1f448; 猛戳订阅 目录 JZ6 - 从尾到头打印链表 「 法一 」链表元素存入数组后再反转 「 法二 」递归大法 「 法三 」栈 JZ6 - 从尾到头打印链表 &#x1f4da; 题目&#xff1a;输入一个链表的头节点&#xff0c;按链表从…

苹果iOS 17新功能:重置密码 72 小时内可使用旧密码再次重置

一些用户可能会遇到&#xff0c;在修改了 iPhone 密码之后&#xff0c;突然忘记新密码的情况。现在苹果在 iOS 17 中加入了新的解决方案&#xff1a;在重置密码的 72 小时之内&#xff0c;如果用户不小心忘记了新设置的密码&#xff0c;仍然可以使用旧密码进行再次重置。 在重…