编织魔法:探索Python字符串的奇幻世界-1

简介: 编织魔法:探索Python字符串的奇幻世界-1

前言


在当今计算机编程领域中,Python语言以其简洁、优雅和易读的特性,成为了最受欢迎的编程语言之一。其中的字符串处理是Python编程中不可或缺的技术之一。本篇博客将介绍Python字符串的基本概念,包括字符串的定义、索引和切片操作。我们将深入探讨字符串的常用方法,如查找、替换、拆分和连接。


通过本篇博客,我们将一同探索Python字符串的奥秘,解密其在Python编程中的秘密武器地位。让我们一起开启这段精彩的Python字符串之旅吧!🚗🚗🚗

什么是 python 字符串

在 python 中,字符串是指用 ’ ’ 、" “、‘’’ ‘’'、”“” “”" 包含起来的所有字符。

message = '我爱python'
print(type(message))

message = "我爱python"
print(type(message))

message = '''我爱python'''
print(type(message))

不仅如此,当我们使用三引号作为字符串标志的时候,我们可以使用回车键将字符串分割,使之还是一个字符串,并且我们打印这个字符串的时候,字符串中也会出现换行。

message = '''我爱
python'''
print(message)
print(type(message))

但是单引号就不能达到三引号字符串这种效果。当我们在单引号字符串之间敲回车键的时候,我们会发现,字符串会被自动分割成两对引号之间使用 \ 连接的字符串,并且打印的时候不会出现换行。

message = '我爱' \
          'python'
print(message)
print(type(message))

当我们的字符串中的内容也含有引号时,我们需要做出相应的操作来进行区别。

message = '我爱\'python\''
message = "我爱'python'"

通过下标(索引)来访问字符串中的字符

字符串序列[n]

这里的下标(索引)是从0开始的

message = 'I love python'
print(message[0])
print(message[1])
print(message[3])

下标(索引)值不能大于字符串长度-1

message = 'I love python'
print(len(message))  # len() 用来获取字符串长度 13
print(message[13])

字符串的切片操作

切⽚是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

字符串序列[开始位置下标 : 结束位置下标 : 步长]

注意:

  1. 不包括结束位置下标对应的数据,正负整数都可以。
  2. 步长是选取间隔,正负整数均可,默认步长为1。
message = 'abcdef'
print(message[0:4:1])  # abcd

message = 'abcdef'
print(message[0:4:2])

1)当省略开始位置的下标时,默认从0下标处开始

message = 'abcdef'
print(message[:4:1])

2)当省略结束位置的下标时,默认到最后一个字符结束

message = 'abcdef'
print(message[0::1])

3)当开始位置下标和结束位置下标都省略时,表示从0下标开始到字符串的结尾

message = 'abcdef'
print(message[::1])

4)当省略步长的时候,默认步长为1

message = 'abcdef'
print(message[0:4:])

5)当步长为负数时,表明是从字符串的尾部开始到字符串的开头的方向

message = 'abcdef'
print(message[4:0:-1])

那么有人会问了,我可以将开始位置和结束位置调换一下吗?答案是不可以的,为什么呢?因为 步长的方向需要跟开始位置到结束位置的方向相同。

message = 'abcdef'
print(message[0:4:-1])

在这里开始位置到结束位置的方向是从字符串开头到结尾的,而步长为负数,则表明步长方向是从字符串尾部到字符串开头的,两者方向不相同。

6)当开始位置或者结束位置为负整数时,表示从字符串尾部开始

-1索引表示字符串的最后一个字符,-2表示倒数第二个字符

message = 'abcdef'
print(message[-1])
print(message[-2])

message = 'abcdef'
print(message[-4:-1:1])

那么这种时候,步长可以为负数吗?我们来看看。

message = 'abcdef'
print(message[-4:-1:-1])

7)当都省略的时候,则会把字符串从前往后打印一遍

message = 'abcdef'
print(message[::])

字符串常用的方法

find() 查找子串

字符串序列.find(子串,开始位置下标,结束位置下标)


从字符串开始位置开始,到结束位置结束,查找是否有指定的子串,如果有就返回第一个子串第一个字符出现的位置的下标,没有则返回-1。不包括结束位置的下标。


message = 'I love python'
print(len(message))
print(message.find('python',2,12))

message = 'I love python'
print(len(message))
print(message.find('python',2,13))

如果省略开始位置下标,则表明从0下标处开始;如果省略结束位置下标,则表明到字符串末尾结束(包括最后一个字符);都省略,则表明在整个字符串中查找。

index() 查找子串

字符串序列.index(子串,开始位置下标,结束位置下标)

index() 方法跟 find() 方法的使用基本相同,只是当字符串中没有找到子串的时候会报错。

message = 'I love python'
print(message.index('Java'))

rfind() / rindex()

这里表明从字符串的右边向左边查找,其他的方法是一样的。

count() 返回某个子串在字符串中出现的次数

字符串序列.count(子串,开始位置下标,结束位置下标)

count() 方法表明从开始位置开始到结束位置结束,看子串在字符串中出现的次数,如果没有则返回0。


message = 'A man who is handsome said that I am a handsome man'
print(message.count('handsome'))

message = 'A man who is handsome said that I am a handsome man'
print(message.count('handsome',18))

replace() 替换

字符串序列.replace(旧子串,新子串,替换次数)

replace() 方法是指将字符串中 n 个旧子串替换成新子串

message = 'A man who is handsome said that I am a handsome man'
print(message.replace('man','woman',1))
print(message.replace('man','woman',2))

当我们修改完成之后,我们再打印原字符串可以发现,原字符串并没有被修改。

message = 'A man who is handsome said that I am a handsome man'
print(message.replace('man','woman',1))
print(message.replace('man','woman',2))
print(message)

这说明在 python 中,字符串是不可变的数据类型。

split() 按照指定字符分割字符串

字符串序列.split(分割字符,num)

split() 方法是指将字符串以 num 个分割符号,分割成 num + 1 部分,返回一个列表类型的数据。并且分割后,该分割字符会消失。

message = 'A man who is handsome said that I am a handsome man'
print(message.split('handsome',1))
print(message.split('handsome',2))
print(type(message.split('handsome',1)))


编织魔法:探索Python字符串的奇幻世界-2:https://developer.aliyun.com/article/1430221

相关文章
|
20天前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
32 1
|
29天前
|
存储 索引 Python
四:《Python基础语法汇总》— 字符串操作
本篇文章详细讲述了关于如何获取字符串中元素的操作(为了方便大家理解,着重讲述了下标索引与切片),及字符串的常用方法与函数和字符串的运算
15 2
四:《Python基础语法汇总》— 字符串操作
|
21天前
|
Python
python字符串常用操作方法
python字符串常用操作方法
|
21天前
|
数据采集 Python
|
1月前
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
|
18天前
|
UED Python
探索Python中的魔法方法:打造自定义字符串表示
【8月更文挑战第31天】在Python的世界里,魔法方法是那些以双下划线开头和结尾的特殊方法,它们为类提供了丰富的功能。本文将带你走进这些魔法方法的背后,特别是__str__和__repr__,揭示如何通过它们来定制我们的对象在被打印或转换为字符串时的外观。我们将从基础用法开始,逐步深入到高级技巧,包括继承与重写,最终实现一个优雅的字符串表示方案。准备好了吗?让我们开始这段代码之旅吧!
|
19天前
|
索引 Python
如何在 Python 中修改字符串
【8月更文挑战第29天】
13 0
|
20天前
|
Python Windows Perl
python 字符串前加r b u f 含义
python 字符串前加r b u f 含义
22 0
|
21天前
|
Python
Python删除 字符串中的\的方法
这篇文章介绍了如何在Python中使用`replace`方法删除字符串中的特定字符,如制表符(`\t`)、空格(` `)以及其他指定字符,同时指出这种方法返回的是新字符串,不会改变原始字符串。
|
27天前
|
数据可视化 Python
Python 绘图编程:一场震撼视觉的奇幻之旅,带你闯入绚丽多彩的数据可视化世界!
【8月更文挑战第22天】Python 以强大功能和简洁语法闻名,其绘图能力尤其出色,助力数据可视化与创意展现。常用绘图库 Matplotlib 提供丰富指令,支持多样图表创作,如线图、柱状图及散点图等。通过简单代码即可完成数据展示,包括设置标题、轴标签等,实现直观的数据故事叙述,满足不同场景需求。不断实践探索,创造更佳视觉效果。
25 0