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

🧡🧡🧡这篇是关于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.rhkb.cn/news/142779.html

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

相关文章

【数据结构】—超级详细的归并排序(含C语言实现)

​ 食用指南:本文在有C基础的情况下食用更佳 🔥这就不得不推荐此专栏了:C语言 ♈️今日夜电波:斜陽—ヨルシカ 0:30━━━━━━️💟──────── 3:20 …

1.物联网射频识别

1.RFID概念 RFID是Radio Frequency Identification的缩写,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需与被识别物体建立机械或光学接触。 RFID(Radio Frequency Identificati…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(二)

思维导图 一、事件监听&#xff08;绑定&#xff09; 1.1 事件监听 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&q…

学物联网有前途吗?

学物联网有前途吗&#xff1f; 物联网即“万物相连的互联网”&#xff0c;是互联网基础上的延伸和扩展的网络&#xff0c;将各种信息传感设备与互联网结合起来而形成的一个巨大网络&#xff0c;实现在任何时间、任何地点&#xff0c;人、机、物的互联互通。最近很多小伙伴找我&…

这个国庆场景下的创意数据应用,体现了数字经济时代的商业价值

在生成式AI爆火的2023年&#xff0c;数据协作和数据交换的商业价值越来越明显。大模型的训练正需要海量跨领域数据的“投喂”&#xff0c;才能真正创造商业价值涌现的奇迹。而如何在保护数据安全的前提下&#xff0c;有效发挥数据资产的商业价值&#xff0c;成为企业数字化亟需…

钉钉自动打卡

钉钉自动打卡 1.准备2.测试3.修改4.效果 因为一系列原因&#xff0c;本人咸鱼50块钱淘了一个小米note移动4G&#xff0c;系统是MIUI6&#xff0c;因为版本太老了&#xff0c;所以不能设置自动开启应用&#xff0c;所以就用了adb,链接电脑&#xff0c;定时跑程序&#xff0c;按按…

SELinux 介绍

背景 在工作中经常需要在 android 中增加一些东西&#xff0c; 而android有自己的安全限制&#xff0c;如果不懂SELinux&#xff0c;就不好添加。 Control Access Model https://zh.wikipedia.org/wiki/Chmod https://linux.die.net/man/1/chcon DAC DAC and Trojan Horses D…

【SpringBoot项目】SpringBoot+MyBatis+MySQL电脑商城

在b站听了袁老师的开发课&#xff0c;做了一点笔记。 01-项目环境搭建_哔哩哔哩_bilibili 基于springboot框架的电脑商城项目&#xff08;一&#xff09;_springboot商城项目_失重外太空.的博客-CSDN博客 项目环境搭建 1.项目分析 1.项目功能&#xff1a;登录、注册、热销…

linux下CentOS安装mysql-5.7

linux下安装mysql只需要在root用户下安装&#xff0c;普通用户也能使用 1.检查&#xff1a; 通过以下两条命令查看改系统下是否已存在mysql。 ps ajx | grep mysql ps ajx | grep mariadb通过指令如果只显示如下两条信息&#xff0c;则当前系统下不存在MySQL。 就可以直接进…

区块链实验室(27) - 区块链+物联网应用案例

分享最新的区块链物联网应用案例&#xff1a;HPCLS-BC

PHP禁止单个用户多设备同时登陆,限制单个用户在多端重复登录

逻辑简单,主要是3点&#xff1a; 1.登录的时候写入一个最新的登录IP到user表其中一个last_login_ip字段 2.登录成功的时候,转入到index控制器或者index方法之前先进行查询&#xff1a; 1).当前IP 2).数据库字段当前用户存储的last_login_ip里面的IP 3.然后进行判断&#xff0…

虹科方案 | 车辆总线数据记录仪解决方案

全文导读&#xff1a;针对车辆总线的数据记录&#xff0c;虹提出的解决方案是利用CANedge系列的CAN/LIN总线数据记录仪&#xff0c;根据不同的使用场合和传输方式&#xff08;SD卡/WiFi/3G/4G&#xff09;&#xff0c;选择相应的产品轻松记录车辆中的总线数据&#xff0c;助力您…

Redis高可用之持久化、主从复制(附配置实例)

目录 一、Redis高可用1.1 简介1.2 高可用策略 二、Redis 持久化2.1 简介2.2 redis 的 2 种持久化方式2.2.1 RDB持久化2.2.2 AOF持久化 三、Redis主从复制3.1 什么是主从复制&#xff1f;3.2 为什么要用主从复制&#xff1f;3.3 主从复制的特性3.4 主从复制工作原理3.4.1 全量复…

【【萌新的RISCV学习之流水线通路的控制-8】】

萌新的RISCV学习之流水线通路的控制-8 我们在之前学习了整个单周期的模块工作流程 我们按照整体的思路分段 将数据通路划分为5个阶段 IF &#xff1a; 取地址 ID &#xff1a;指令译码和读存储器堆 EX :执行或计算地址 MEM : 数据存储器访问 WB : 写回 单周期数据通路&…

飞书与企业微信的异同

云文档 飞书的云文档会自动用游览器打开&#xff0c;不会直接在PC应用中打开&#xff08;移动端能在应用中打开&#xff09;。 飞书云文档能够插入视频、流程图、问卷等等 聊天消息交互 钉钉也有类似的功能&#xff0c;可以针对消息进行点赞等回复 钉钉的消息回复还有【收到…

5.外部中断

中断初始化配置步骤&#xff1a; IO口初始化配置 开启中断总允许EA 打开某个IO口的中断允许 打开IO口的某一位的中断允许 配置该位的中断触发方式 中断函数&#xff1a; #pragma vector PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector PxINT_VECTOR __int…

【pytest】 标记冒烟用例 @pytest.mark.smoke

1. 使用 pytest.mark.smoke 标记用例 import pytest class Test_Smoke:def test_01(self):assert 112pytest.mark.smokedef test_02(self):assert 121pytest.mark.smokedef test_03(self):assert 1 2 3 2.配置文件pytest.ini [pytest] markers smoke 3. 运行指定标签 运…

网络安全复习大纲wcf

单选10判断10填空30简答25分析25 选择 &#xff08;1&#xff09;计算机网络安全是指利用计算机网络管理控制和技术措施&#xff0c;保证在网络环境中数据的&#xff08; &#xff09;、完整性、网络服务可用性和可审查性受到保护。 A、保密性 B、抗攻击性 C、网络服务管理性 …

Unity之NetCode多人网络游戏联机对战教程(2)--简单实现联机

文章目录 1.添加基本组件2.创建NetworkManager组件3.创建Player4.创建地面5.创建GameManager6.编译运行7. 测试联机后话 1.添加基本组件 NetworkManagerPlayerScene 2.创建NetworkManager组件 创建一个空物体&#xff0c;命名为NetworkManager 选择刚刚创建的NetworkManager…

VS2022 编译protobuf , qt 使用

一、下载源码 protobuf: 同步 https://github.com/protocolbuffers/protobuf (gitee.com) 下载如v3.11.2 版本 二、下载CMake 三、编译 1、在1处选择源码目录下的cmake 目录&#xff1b;在2处选择一处空目录&#xff08;自己随便建&#xff09; 2、点击config&#xff0c;选择…