少儿Python编程进阶教程:字符串String(3)

少儿Python编程进阶教程:字符串String(3)

一、类型转换

上一课中,我们了解到整数和浮点数可以转换为字符串,反之亦然。

在Python中,将变量或值的类型从一个转换为另一个称为类型转换。每个变量类型都有自己的构造函数来实现此目的。

  • int()-从整数文本、浮点文本(通过删除所有小数)或字符串文本(前提是字符串表示整数)构造整数
  • float()-从整数文本、浮点文本或字符串文本构造浮点数(前提是字符串表示浮点数或整数)
  • str()-从多种数据类型构造字符串,包括字符串、整数文字和浮点文字
  • list()、tuple ()、set ()、 dict()-从文字的迭代中构造一个列表、元组、集合或字典,我们将在后面的章节中讨论。


下面是有关如何将字符串、整数或浮点数转换为字符串的示例。

x = str("s1")
print(x)
y = str(2)
print(y)
z = str(3.0)
print(z)

二、字符串操作

在少儿Python编程基础教程中,我们了解到字符串支持串联和乘法运算。

运算符描述例子结果
+串联“Hello”+”Python””“HelloPython”
*将字符串副本相加“123”*3“123123123”

与数字类似,字符串可以运用拓展赋值运算符

运算符例子等价形式
+=s +=”Python”s = s+”Python”
*=s*=3s = s*3

三、打印多行字符串

在某些情况,我们希望可以打印多行的长字符串,这时,我们可以使用三个引号将字符串赋值给变量:

s = """这是第一行
这是第二行
这是第三行"""
print(s)

执行结果:

这是第一行
这是第二行
这是第三行

四、迭代字符串

字符串和列表一样,都是可迭代变量,支持以下操作。

  • 使用len()计算变量的长度
  • 使用索引号(用[]括号括起来)访问某位置的元素
  • 使用成员运算符“in”或者“not in”检查变量是否存在

下面是一个比较表格,介绍不同的语句

语句字符串列表
赋值语句s = “abc”list=[“a”,”b”,”c”]
前缀串联“xyz”+s[“x”,”y”,”z”]+list
后缀串联s+”def”list+[“d”,”e”,”f”]
乘法s*3list*3
求长度len(s)len(list)
索引s[2]list[2]
负索引s[-1]list[-1]
索引错误(超过边界)s[3]list[3]
成员运算符in“a” in s
“ab” in s
“a” in list
“ab” in list
成员运算符not in“d” not in s“d” not in list
for循环for c in s:
print(c)
for c in list:
print(c)

五、字符串切片

前面的课程,我们学习过如何使用索引访问单个列表或字符串的元素,如果我们想处理字符串或者列表的部分元素,可以使用切片。

切片可用于获取字符串的子部分。

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。

s[start:end] 是从开始(start)索引开始并延伸到但不包括结束(end)索引的元素。

如果我们省略第一个索引(在冒号之前),则切片从字符串的开头开始。

如果省略第二个索引,则切片将延伸到字符串的末尾。

如果第一个索引大于或等于第二个索引,则结果为空字符串,由两个引号表示。

对于非负索引,切片的长度是索引的差值(如果两者都在边界内)。例如,len(s[1:3] )

Python切片
Python切片

下面我们以字符串s=”Python”为例,看一下不同切片的效果

切片输出子字符串说明
s[1:4]“yth”从索引1开始,一直到索引4,但不包括索引4
s[1:]“ython”省略结束索引,默认切片到字符串结尾
s[:]“Python”得到字符串副本
s[1:100]“ython”超过字符串长度的索引将被截断为字符串长度
s[100:]“”开始索引超过字符串长度,之后没有任何字符,所以是空字符串
s[:-3]“Pyt”负索引,不包括索引-3及之后的字符
s[-3:]“hon”从-3索引开始,一直延伸到字符串末尾

注意:

s[:i]+s[i:]=s

s = "Python"
s1=s[:3]
s2=s[3:]
s3=s1+s2
print(s3)

执行结果:

Python

大家可以注意到切片的语法和range(start,stop,step)语法非常类似。确实,切片也支持步长step参数,语法:s[start:stop:step],我们还以s=”Python”为例

切片输出子字符串说明
s[1::]“ython”省略步长,默认为1
s[1::2]“yhn”步长为2,切片取的字符索引是1,3,5,每一步索引增加2
s[::-1]“nohtyP”负步长将默认切片方向从左到右更改为从右到左。step=-1实质上是反转整个字符串,返回一个子字符串,其中字符从最右边开始到最坐标,索引每一步减少1.
s[::-2]“nhy”与上面的例子相同,但是每一步索引减少2

公众号

关注公众号

x