【Python】字符串

Python
255
0
0
2024-05-18
标签   Python基础

字符串的定义

字符串这个在任何编程语言都可以说是非常常见的了无非就是一串字符为字符串,是编程语言当中表示文本的数据类型。

在Python当中可以用两种形式表示定义一个字符串如下代码所示↓

name1 = "zhangsan" # (双引号的形式)

print(name1)

name2 = 'laowang' # (单引号的形式)

print(name2)
  • 运行结果🖊
  • zhangsan
  • laowang

当然你也可以使用一些转义字符的操作,来对字符串进行不同的操作都是允许的。

但是,由于大多数的编程语言都是用""(双引号)来表示字符串的。所以,我们可以使用双引号的形式来表示一串字符串。当然这不是绝对的,指代Python的情况下。

索引获取字符

索引在前面当中的Python系列当中博主有说过不知道你还想的起来吗(●'◡'●)想不起来那就赶紧回去看看吧我不会告诉你是列表那一篇的(ノ*・ω・)ノ,在有些编程语言当中会把索引称之为下标,这也是可以的。

我们可以使用索引来获取一个字符串内部当中所指定位置的字符,重点:索引都是从0开始的,也可以认为是下标也是从0开始的。

当然除了获取指定位置的字符,我们也可以使用for循环来遍历整个字符串也是🆗の。

索引

用索引获取指定位置字符串,代码示例如下↓

str1 = "Hello Python"
print(str1[6])

运行结果🖊

P

从上面当中我们可以发现用索引操作并且打印我们获取到了字符串当中的P的字母。

遍历

那么接下来我们来说说如何用for语句来遍历整个字符串,代码示例如下↓

str1 = "Hello Python"
for str in str1:  # 注意:冒号
    pass
    print(str)

运行结果🖊

H e l l o P y t h o n

此时张三同学说:謓泽为什么它会换行,我不想换行怎么办。

我:张三同学一看你就是没有好好看我前面当中的内容,其实很容易。

print(str,end="")

我们只需要把第④行的代码+上end=""操作就可以了。

字符串的常用操作


索引

字符串[索引]从字符串中取出单个的字符。

字符串.index(字符串)获得某一个子字符串出现的位置。代码示例如下↓

str1 = "Hello Python"
print(str1.index("P"))

运行结果🖊

6

那么如果使用index传递的子字符串不存在,程序会报错的。代码示例如下↓

str1 = "Hello Python"
print(str1.index("A"))

运行结果🖊

line 2, in <module> print(str1.index("A")) ValueError: substring not found

字符串当中的转义字符


  • \t 在控制台上输出一个制表符、协助在输出文本的时候与垂直方向保持对齐。
  • \n 在控制台上输出一个换行符

制表符的功能是在不使用表格的情况下在垂直方向按照列来对齐文本。 转义字符转义字符描述\\反斜杠符号\'单引号\"双引号\n换行\t横向制表符\r回车(回到当前这行的行首)

针对字符串操作⑥大方法


判断类型的方法。

  • string.isspace()

功能说明:如果 string 中只是包含空格,则返回 Ture(真)

那么我们还是用代码演示如下↓

# 判断空白字符
space_str = " "
# space_str = " \n\t\r"

print(space_str.isspace())

运行结果🖊

Ture

注意:制表符空格换行符回车同样都是属于空白字符的。

  • string.isdecimal()

功能说明:判断字符串中是否只包含数字,只包含数字就返回Ture(真)

代码示例如下↓

# 判断字符串当中是否只包含数字
num_str = "123.123"
print(num_str,end="")
print(num_str.isdecimal())

运行结果🖊

  • 123True

代码示例如下↓

# 判断字符串当中是否只包含数字
num_str = "123.123"
print(num_str,end="")
print(num_str.isdecimal())

运行结果🖊

  • 123.123False

注意:如果你是有小数的话就不会返回Ture(真)

查找和替换的方法。

  • startswith()

功能说明:检查字符串是否以 str 开头的,是的话返沪值为 Ture(真)

示例代码如下↓

str_name = "zhangsan"
print(str_name.startswith("zhangsan"))

运行结果🖊

Ture

注意:必须要按照它的函数要求来,如果是Z大写的话就会返回False。

  • endswitch()

功能说明:检查字符串是否以 str 结束,是的话就返回 True。

示例代码如下↓

str_name = "zhang san"
print(str_name.endswith("san"))

运行结果🖊

Ture

注意:是以 str 结束🔚

str_name = "zhang san"
print(str_name.endswith("zhangsan"))

如果你是这个样子的话,它就不满足endswitch()功能说明,最终返回False。

  • find()

find()方法来检索字符串中是否包含指定元素,如果包含该元素则返回该元素第一次出现的索引位置,如果不存在该字符则返回-1,它的语法结构如下↓

my_str.find(x)

my_str为要检索的字符串名,x为我们要寻找的元素。示例代码如下↓

my_str = "Python yyh"
print("找到索引值:",my_str.find('P'))
print("找不到返回",my_str.find('x'))

运行结果🖊

找到索引值: 0

找不到返回 -1

  • replace()

replace()方法语法如下↓

str.replace(old, new, max])

功能说明: replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

参数如下↓

  • old → 将被替换的子字符串。
  • new → 新字符串,用于替换old子字符串。
  • max → 可选字符串,替换不超过 max 次

示例代码如下↓

str1 = "Python 666"
print("原本打印的是:",str1)
print("现在打印的是:",str1.replace("666","niubang"))

运行结果🖊

  • 原本打印的是: Python 666
  • 现在打印的是: Python niubang

大小写转换。

str = "yysy.Pythonshizhendehaoyong"
# 把所有字符中的小写字母转换成大写字母
print("转换成大写字母:",str.upper())       
# 把所有字符中的大写字母转换成小写字母
print("转换成小写字母:",str.lower())         
# 把第一个字母转化为大写字母,其余小写
print("第一个字母转换成大写,其它小写:",str.capitalize())  
# 把每个单词的第一个字母转化为大写,其余小写
print("第一个字母转化为大写,其余小写:",str.title())            

运行结果🖊

转换成大写字母: YYSY.PYTHONSHIZHENDEHAOYONG 转换成小写字母: yysy.pythonshizhendehaoyong 第一个字母转换成大写,其它小写: Yysy.pythonshizhendehaoyong 第一个字母转化为大写,其余小写: Yysy.Pythonshizhendehaoyong

文本对齐。

文本对齐指的就是我们输出的字符串要么统一向左边对齐或者是向右边对齐又或者全部给它进行居中对齐。

string.ljust(width)

返回一个原字符串进行左对齐,并且使用空格填充至长度 width 的新字符串。

string.rjust(width)

返回一个原字符串进行右对齐,并且使用空格填充至长度 width 的新字符串。

string.center(width)

返回一个原字符串进行中对齐,并且使用空格填充至长度 width 的新字符串。

去除空白字符。

去除空白字符就是:前面没有用的空白字符和后面没有用的空白字符,全部进行删除,只保留中间有内容的部分。

string.lstrip()

功能说明:截掉 string 左边(开始)的空白字符。

string.lstrip()

功能说明:截掉 string 右边(开始)的空白字符。

string.lstrip()

功能说明:截掉 string 左右两边的空白字符。

拆分split()和连接。

string.split()

语法 split() 方法语法如下↓

str.split(str="", num=string.count(str)).

参数如下↓

  • str → 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num → 分割次数。默认为 -1, 即分隔所有。

返回值如下↓

  • 返回分割后的字符串列表
  • 功能说明:可以把一个大的字符串拆分成一个字符串的列表。

代码示例如下↓

str = "PYTHON \n yyds \n yyds \n good \n"
print(str)
print(str.split())

运行结果🖊

PYTHON yyds yyds good

['PYTHON', 'yyds', 'yyds', 'good']

string.join()

语法 join() 方法语法如下↓

string.join(seq)

功能说明:我们这里以 string 作为分隔符,将 seq 当中所有的元素(的字符串表示)用来合并成一个新的字符串。示例代码如下↓

str = "PYTHON \n yyds \n yyds \n good \n"
print(str)
# 再使用 " "作为分隔符,拼接成一个整齐的字符串
result = " ".join(str)
print(resuly)

运行结果🖊

PYTHON yyds yyds good

PYTHON yyds yyds good

由于这里当中的操作太多就并不详细介绍了,以后有机会会介绍的(╹ڡ╹ )

字符串切片


切片是使用索引值来限定范围的,从一共大的字符串当中切出一个小的字符串。

列表和元组都是有序的集合,都能够通过索引值获取到对于的数据。

字典是一个无序的集合,是使用键值对保存数据。

字符串[开始索引:结束索引:步长]
  • 开始索引:就是从一开始的位置上开始,就好比我们指定为0的话。那么就是从零开始的。
  • 结束索引:就是好比一开始开始索引是零,那么我指定二的话。就是区间的值。那么二后面的话就不包含了。如果我们想要到末尾的字符的话,只需要结束索引不指定就可以了。这样就到末尾了。
  • 步长:所谓的步长就是在我们开发的时候,对一个大的字符串指定的间隔。比如我们把步长指定为②的话,任然是从0的地方开始,那么就从0+2=2,那么就会指定到T的位置。然后,再用索引②加上步长②,那么就为④了,就是O的位置了。
练习题→字符串逆序

假设字符串定以如下↓

num_str = "0123456789"

原本的顺序是从0~9,现在的逆序就是9~0,这样的就叫做是逆序。示例代码如下↓

num_str = "0123456789"
print(num_str[-1::-1])

运行结果🖊 987654321