字符串

139 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天

一、字符串介绍

最常用的数据类型,字符序列、不可变(数值、字符串、元组)。

由连续字符组成的不可变的有序序列。是计算机所能表示的一切字符的集合。

容器、序列、迭代对象(for)

在Python中,字符串属于不可变序列,通常使用一对单引号“' '”、双引号“" "”或三引号“''' '''”、“""" """”括起来。其中,单引号和双引号中的字符串必须在同一行上,三引号内的字符串可以在连续的多行上。

成对匹配出现,不能交叉。

使用单引号和双引号括起来的字符串没有任何区别。如果字符串中有单引号,则使用双引号将字符串括起来。同样,如果字符串中有双引号,则使用单引号将字符串括起来。

注意:没有字符这个类型

 

如何证明字符串不可变,修改就是再创建了一个空间

aa= 你好
print(aa)
print(aa)
aa[1]= 我
print(aa)

aa= 你好
print(aa)
print(aa[1])
aa= "我美
print(aa)

aa= 你好
print(id(aa))
aa=我美
print(id(aa))

内存地址不一样:

image.png

二、访问字符串中的值:索引和切片

1、索引

字符串被索引(下标访问)时,第一个字符索引是0。 索引也可用负数,从右边开始数。因为-0和0相同,所以负数索引从-1开始。Python字符串直接在方括号([])中使用索引即可获取对应的字符。

字符串         s1 =  's    t    u    d    y'

从前面索引          0    1    2    3    4

从后面索引          -5   -4   -3    -2    -1

s1[0] = 's'   s1[2] = 'u'   s1[4] = 'y'

s1[-5] = 's'  s1[-3] = 'u'  s1[-1] = 'y'

索引超出范围会出错: IndexError: string index out of range****

2、切片

除了索引,字符串还支持切片。索引可以得到单个字符,而切片可以获取子字符串。Python访问子字符串,可以使用方括号[]来截取字符串。

字符串的截取语法格式如下:变量[start : end : step]

对各个部分的说明:

1) start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;

2) end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;

3) step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。

注意,切片的开始索引被包含在结果中,而结束索引不包含。左闭右开。切片超出范围不出错。例如:

str1 = 'python'  

str1[2:5] = 'tho'   str1[0:2] = 'py'

三、拼接字符串

在Python中拼接(连接)字符串很简单,我们介绍两种方法:

1.直接将字符串紧挨着写在一起

注意,这种方法只能拼接字符串。代码示例:

str_1 = "我骄傲!""我是中国人!"
print(str_1)

结果:我骄傲!我是中国人!

 

2.使用“+”运算符拼接

代码示例:

str_2 = **"我的祖国" + str(72) + "岁啦!"
print(str_2)

代码中,使用str()函数将整数转换为字符串。运行结果:我的祖国72岁啦!

 

四、字符串乘运算

乘运算:重复N遍

print(“=”*30)