全网最全Python系列教程(非常详细)---字符串讲解(学Python入门必收藏)

news2024/12/23 13:12:00

🧡🧡🧡这篇是关于Python中字符串的讲解,涉及到以下内容,欢迎点赞和收藏,你点赞和收藏是我更新的动力🧡🧡🧡

在这里插入图片描述
本文将从以下几个方面展开对字符串的讲解:

1、字符串的概念,到底什么是字符串
2、字符串表现形式有哪些
3、字符串每个形式有什么特点
4、字符串的一般操作有哪些
5、字符串有哪些函数、方法需要了解

字符串

  • 1 字符串的概念
  • 2 字符串表现形式
    • 2.1 非原始字符串
    • 2.2 转义字符
    • 2.3 原始字符
  • 3 各个形式字符串的特点
  • 4 字符串的一般操作
    • 4.1 字符串拼接
    • 4.2 字符串切片
  • 5 查找操作
    • 5.1 len()函数
    • 5.2 find()方法
    • 5.3 index()方法
    • 5.4 count()方法
  • 6 转换
    • 6.1 replace()方法
    • 6.2 capitalize()方法
    • 6.3 title()方法
    • 6.4 low()方法
    • 6.5 upper()
  • 7 填充压缩
    • 7.1 ljust()方法
    • 7.2 rjust()方法
    • 7.3 center()方法
    • 7.4 lstrip()方法
    • 7.5 rstrip()方法
  • 8 分割拼接
    • 8.1 split()方法
    • 8.2 partition()方法
    • 8.3 rpartition()方法
    • 8.4 splitlines()方法
    • 8.5 join()方法
  • 9 判定
    • 9.1 isalpha()方法
    • 9.2 isdigit()方法
    • 9.3 isalnum()方法
    • 9.4 isspace()方法
    • 9.5 startwith()方法
    • 9.6 endswith()方法
    • 9.7 in/not in

1 字符串的概念

字符串,字符串,我们日常生活中总是在说字符串,到底什么是字符串呢?

在这里插入图片描述

在这里插入图片描述
字符串就好像我们吃过的糖葫芦,一串上面有多个糖葫芦


2 字符串表现形式

2.1 非原始字符串

在这里插入图片描述

str1 = 'helloword'
str2 = "helloword"
str3 = """helloword"""
str4 = '''helloword'''

print(str1, str2, str3, str4)

创建好了字符串,我们如何验证该数据类型就是字符串呢?

str1 = 'helloword'
str2 = "helloword"
str3 = """helloword"""
str4 = '''helloword'''

# 使用type()函数可以查看数据类型
print(type(str1), type(str2), type(str3), type(str4))

2.2 转义字符

在这里插入图片描述
如何理解转义字符?
转义字符就是,通过转换某个指定字符,使它具备特殊的含义

# 比如,我要在单引号的字符串中打印单引号
str1 = 'hell'o'
print(str1)

在这里插入图片描述

正确的使用转义字符

# 比如,我要在单引号的字符串中打印单引号
str1 = 'hell'o'
print(str1)

2.3 原始字符

在这里插入图片描述
前面说到了转义字符,现在来看看原始字符串

# 原始字符串
# 原始字符串可以让转义字符失效
str1 = r'hell\'o'
print(str1)

str2 = r"hell\"o"
print(str2)

str3 = r'hello\nword'
print(str3)

str4 = r'hello\tword'
print(str4)


3 各个形式字符串的特点

在这里插入图片描述

# 单引号、双引号混合使用可以避免使用转义字符
str1 = "hello'sword"
print(str1)

str2 = 'hello"sword'
print(str2)
# 在Pycharm中,在字符串中,按下回车,会自动添加换行符
str1 = "hello's" \
       "word"

在这里插入图片描述

在这里插入图片描述

str1 = """hello
word
python
"""

print(str1)

'''
三引号可以直接用于多行注释
对程序起到解释作用
'''


def fun():
    """
    三引号可以作为文档字符串,用来解释该函数的作用
    :return:
    """
    pass

在这里插入图片描述


4 字符串的一般操作

4.1 字符串拼接

在这里插入图片描述

str1 = 'hello'
str2 = 'word'

print(str1+str2)

在这里插入图片描述

print('hello''word')

在这里插入图片描述

str1 = 'hello'
str2 = 'word'

print('我将要打印:%s' % (str1+str2))

在这里插入图片描述

在这里插入图片描述

str1 = 'hello'
str2 = 'word'

print(str1 * 10)

print(str2 * 5)

4.2 字符串切片

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如何理解下标?
下标也可以理解为索引,通过下标我们可以获取某一具体的元素
下标的概念和座位编号的概念很像,我们通过座位编号可以找到座位上的人
有正下标也有负下表

str1 = 'ILovePython'

print(str1[0])
print(str1[-1])
print(str1[20])

在这里插入图片描述

注意 注意 注意
索引下标千万不要越界
索引下标千万不要越界
索引下标千万不要越界

在这里插入图片描述

str1 = 'ILovePython'

print(str1[:])  # 默认获取整个字符串

print(str1[::-1])  # 反转字符串

# 切片操作一般有三个参数,起始位置,终止位置以及步长
print(str1[1:4])  # 从左到右切片,步长为正

print(str1[4:1:-1])  # 从右往左切片,步长为负


5 查找操作

在这里插入图片描述

5.1 len()函数

在这里插入图片描述

str1 = 'ILovePython'
str2 = '中国'
str3 = 'hello\nword'
str4 = 'hello\ nword'

print(len(str1))
print(len(str2))
print(len(str3))
print(len(str4))

在这里插入图片描述

5.2 find()方法

在这里插入图片描述

str1 = 'ILovePython'

# 查找子串的索引位置,从左边往右边开始查找
print(str1.find('Py'))

# 可以指定检索起始位置和检索结束位置
# 起始位置可以取,结束位置取不到,是一个半开区间
print(str1.find('Py', 2, len(str1)))

在这里插入图片描述

5.3 index()方法

在这里插入图片描述
使用方式和index一样,但是当子串没有查询到的时候就不一样

对比index()和find()
在这里插入图片描述
在这里插入图片描述

5.4 count()方法

在这里插入图片描述

str1 = 'PythonILovePythonPython'

print(str1.count('Py'))


6 转换

6.1 replace()方法

在这里插入图片描述

str1 = 'PythonILovePythonPython'

str2 = str1.replace('Py', 'PPP')
str3 = str1.replace('Py', 'PPP', 2)

print(str2)
print(str3)

在这里插入图片描述

6.2 capitalize()方法

在这里插入图片描述

str1 = 'python I Love python python'

print(str1.capitalize())

6.3 title()方法

在这里插入图片描述

str1 = 'python I Love python python'

print(str1.capitalize())

print(str1.title())

capitalize()和title()区别
在这里插入图片描述

6.4 low()方法

在这里插入图片描述

str1 = 'python I Love pyTHON python'

print(str1.lower())

6.5 upper()

在这里插入图片描述

str1 = 'python I Love pyTHON python'

print(str1.upper())


7 填充压缩

在这里插入图片描述

7.1 ljust()方法

在这里插入图片描述

str1 = 'python'

# 指定结果字符串长度,指定填充字符(注意是单个字符)
print(str1.ljust(10, 's'))

# 如果指定结果字符串长度小于原始字符串长度,则不会发生填充,返回原字符串
print(str1.ljust(5, 's'))

7.2 rjust()方法

在这里插入图片描述
原理和ljust()方法一样,不过这是原字符串靠右

7.3 center()方法

在这里插入图片描述

str1 = 'python'

# 指定字符串长度,指定填充字符
print(str1.center(20, 's'))

7.4 lstrip()方法

在这里插入图片描述

str1 = 'pypy pythonppythonython'

print(str1.lstrip('py'))

在这里插入图片描述

7.5 rstrip()方法

在这里插入图片描述
从右侧开始移除
具体使用参考lstrip()


8 分割拼接

8.1 split()方法

在这里插入图片描述

str1 = 'python_python_python_python_python'

# 第一个参数为依据什么进行分割,第二个参数为最大分割次数(可以省略,默认全部分割)
# 返回的是一个分割之后的列表
print(str1.split('_'))

print(str1.split('_', 2))

在这里插入图片描述

8.2 partition()方法

在这里插入图片描述

str1 = 'python_python_python_python_python'

# 指定分隔符,返回一个含有三个元素的元组
# 分隔符左侧内容 分隔符 分隔符右侧内容
print(str1.partition('_'))

# 如果没有找到分隔符就会返回一个元组,该元组为默认形式
print(str1.partition('!'))

8.3 rpartition()方法

在这里插入图片描述
用法参考partition()方法

8.4 splitlines()方法

在这里插入图片描述

str1 = 'python\npython\tpython\tpython\npython'

print(str1.splitlines())

print(str1.splitlines(keepends=True))

8.5 join()方法

在这里插入图片描述

在这里插入图片描述

str1 = 'python'

print(str1.join('hello'))

# 注意:这里的元组、列表以及其他可迭代对象中必须是字符类型数据
tup1 = ('1', '2', '3')
print(str1.join(tup1))


9 判定

9.1 isalpha()方法

在这里插入图片描述

str1 = 'python'

print(str1.isalpha())

9.2 isdigit()方法

在这里插入图片描述

9.3 isalnum()方法

在这里插入图片描述

9.4 isspace()方法

在这里插入图片描述

9.5 startwith()方法

在这里插入图片描述

9.6 endswith()方法

在这里插入图片描述

这个方法比较有用,因为我们在读取一个文件的时候,可以判断这个文件是否以某个文件后缀结尾

str1 = 'python.doc'

print(str1.endswith('doc'))

9.7 in/not in

在这里插入图片描述



😁😁😁觉得对自己有帮助的小伙伴可以👍关注💡收藏💖😁😁😁

👉👉👉有误的地方也可以在评论区讨论哦👈👈👈

希望本文能够对大家有帮助~!


往期推荐
🚀🚀🚀全网最全Python系列教程(非常详细)—数值篇讲解(学Python入门必收藏)🚀🚀🚀

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

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

相关文章

如何在Python中实现安全的密码存储与验证

在现代互联网时代,安全性已经成为一个非常重要的问题。在我们的日常生活中,我们会使用许多网站和应用程序,而这些网站和应用程序通常要求我们提供密码来保护我们的个人信息。然而,密码泄露事件时有发生,我们经常听到关…

@ConditionalOnProperty配置属性作为条件

1.ConditionalOnProperty​做什么用的? 主要是根据配置参数,来决定是否需要创建这个bean,这样就给了我们一个根据配置来控制Bean的选择的手段了,不启用只需要更改配置即可。 ​ConditionalOnProperty​源码 package org.springf…

进程管理--CFS调度器(1)

介绍 CFS(Completely Fair Scheduler,完全公平调度器)用于Linux系统中普通进程的调度。它给cfs_rq(cfs的run queue)中的每一个进程设置一个虚拟时钟,vruntime。如果一个进程得以执行,随着时间的增长&#…

Pycharm在进行debug时出现collecting data如何解决?

Pycharm在进行debug时变量界面出现collecting data,问题如下: 解决方法:打开Setting界面,在Python Debugger选项中勾选下图中的Gevent compatible即可。

iOS CocoaPod 打包:SDK开发、Pod组件生成等

参考链接:CocoaPod打包 SDK开发 - 简书 iOS非集成打包:依赖cocoapods的Swift静态库打包、脚本合并真机与模拟器 - 简书 iOS 组件化开发----pod私有库制作及使用_ios组件化开发-CSDN博客 1.生成pod包命令 pod lib create testTools 如果提示&#xf…

img 固定宽高 图像不拉伸 显示图片中间部分

.m-sd-chat-select-avatar-img{width: 100px;height: 125px;object-fit: cover;border-radius: 6px;cursor: pointer;} 使用后: 使用前:

Django 联表查询操作

在日常的开发中,常常需要对多张数据表同时进行数据查询。多表查询需要在数据表之间建立表关系才能够实现。一对多或一对一的表关系是通过外键实现关联的,而多表查询分为正向查询和反向查询。 表模型结构 以歌手表、专辑表、单曲表查询为例子。 歌手与专…

RK3588 VDD_LOGIC电源PCB设计注意事项

RK3588 VDD_LOGIC电源PCB设计 1、VDD_LOGIC的覆铜宽度需满足芯片的电流需求,连接到芯片电源管脚的覆铜足够宽,路径不能被过孔分割太严重,必须计算有效线宽,确认连接到CPU每个电源PIN脚路径都足够。 2、如图1所示,原理…

Scrapy-应对反爬虫机制

参考自https://blog.csdn.net/y472360651/article/details/130002898 记得把BanSpider改成自己的项目名,还有一个细节要改一下,把代码user换成user_agent 禁止Cookie 在Scrapy项目中的settings文件,可以发现文件中有以下代码: COOKIES_ENA…

红黑树-自平衡二叉搜索树

一、简介 红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,它的节点可以是红色或黑色。这个颜色的设计是为了满足红黑树的五个关键性质,确保树保持平衡和高效地支持插入、删除和搜索操作。 以下是红黑树的五个关键性质&#xf…

【Unity3D日常开发】Unity3D中Quality的设置参考

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 这篇文章就来讲一下Quality的设置(Unity版本&#…

浪潮信息被Gartner评为全球文件存储标杆厂商

近日,国际权威研究机构 Gartner 正式发布《2023年存储和数据保护技术成熟度曲线报告》((Hype Cycle for Storage and Data Protection Technologies, 2023,以下简称“报告”),基于对市场应用的前瞻洞察和多年的技术精耕…

518抽奖软件,一键打印中奖名单的方法和用途

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 一键打印中奖名单 主窗口上按 CtrlP 打开 {…

在关系型数据库中储存树形结构

adjacency list 邻接表显然是最简单的方式,也是在实践中经常用到的。其储存节点以及直接父节点来进行储存树形结构 邻接表结构简单,查询修改节点的直接父节点都很容易。然而如果返回父节点下的所有节点之类的跨层操作那就很麻烦了,需要频繁…

matlab实现杨氏双缝干涉实验可视化界面

关于杨氏双缝干涉实验的条纹光强理论推导和matlab绘图可以参考下面的链接:杨氏双缝干涉实验matlab实现 接下来利用GUI实现可视化界面。 一、GUI GUIDE简介 1、在命令行窗口输入小写的guide可以自动弹出fig窗口。 2、界面的左侧是常用的工具,鼠标悬停…

利用串口示波器调试PID参数

PID调试最麻烦的是参数调整,需要花费大量时间,如果每调整一次都要修改代码重新编译烧录,效率很低,推荐串口示波器与rt-thead finsh进行调试 推荐使用FireWater数据引擎 定时上报数据,rt_kprintf不支持浮点数据打印&a…

从零开始之了解电机及其控制(6)六步换向法

引导:六步换向的本质是? 因为无刷电机有三根线,而H桥可以将负载连接到正电压或者地,于是用三对MOS管组成的H桥驱动电机,称为半桥驱动。 无刷电机的优点如下: 首先,由于所有三个电机相位都通过…

xcode15下载ios17模拟器失败

升级到xcode15后需要安装ios17模拟器 但是在下载过程中会遇到报错 如下图这种 网上搜索了一下发现有人遇到过无法下载的问题,并且在apple官网也有人提出类似问题 https://developer.apple.com/forums/thread/737648 解决方案就是从https://developer.apple.com/do…

linux提权秘籍

Linux 提权总结 一、常用基础 1、自定义可执行文件(Custom Executable) 可能有某些根进程执行另一个可以控制的进程。在这些情况下,以下C代码一旦编译,将生成一个作为根运行的sbashell: int main() { setuid(0);system("/bin/bash -p…

MapBox GL JS出现“Unimplemented type: 7”问题的解决办法

Mapbox GL JS在矢量瓦片的渲染方面有独特的优势,可以支持动态的样式,支持字体切片,快速加载各种字体。使用起来十分方便,但是在很长的一段时间内,经常遇到出现大量“Unimplemented type: 7”的控制台错误提示&#xff…