天天看点

【Python】 5/17:字符串与序列

参考文章:

http://c.biancheng.net/view/2174.html

https://www.runoob.com/python3/python3-string.html

https://www.cnblogs.com/diaosir/p/6575891.html

字符串

一、定义

字符串的意思就是“一串字符”,比如“Hello,CXY”是一个字符串,“How are you?”也是一个字符串。

Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。

t1 = 'i love Python!'
print(t1, type(t1))
# i love Python! <class 'str'>

t2 = "I love Python!"
print(t2, type(t2))
# I love Python! <class 'str'>

print(5 + 8)  # 13
print('5' + '8')  # 58
           

如果字符串内容本身包含了单引号或双引号,此时就需要进行特殊处理:

  1. 使用不同的引号将字符串括起来。
  2. 对引号进行转义。
str3 = 'I'm a coder'
           

此时 Python 会将字符串中的单引号与第一个单引号配对,这样就会把 ‘I’ 当成字符串,而后面的 m a coder’ 就变成了多余的内容,从而导致语法错误。

可改成:

假如字符串内容本身包含双引号,则可使用单引号将字有串括起来:

或者使用转义字符。Python 允许使用反斜线(\)将字符串中的特殊字符进行转义。例如下图:

tips:不要与除号 / 混淆哦~

  • python 常用转义字符
【Python】 5/17:字符串与序列

原始字符串只需要在字符串前边加一个英文字母 r 即可。

print(r'C:\Program Files\Intel\Wifi\Help')  
# C:\Program Files\Intel\Wifi\Help
           

三引号(’’‘xxx’’'或""“xxx”"")包围的字符完全是字面符号,包围什么就得到什么,包括换行,且不会进行任何转义、替换等。使用这种块字符串的方式,在输入需要换行的字符串时非常方便。

str6 = """aaa
aaa"""
#输出:aaa
#aaa          (保持换行)
           
  • Python字符串运算符
【Python】 5/17:字符串与序列
  • Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
#输出结果:我叫 小明 今年 10 岁!
           
【Python】 5/17:字符串与序列
【Python】 5/17:字符串与序列
  • Python 的字符串内建函数
    【Python】 5/17:字符串与序列
    【Python】 5/17:字符串与序列
    【Python】 5/17:字符串与序列
    【Python】 5/17:字符串与序列
    【Python】 5/17:字符串与序列
    【Python】 5/17:字符串与序列

序列

常见序列类型包括字符串(普通字符串和unicode字符串),列表和元组.所谓序列,即成员有序排列,可通过下标访问。

常用操作:

  1. 索引

序列中的元素都是有序的、拥有自己编号(从0开始),我们可以通过索引得到序列中对应的元素:

>>> s = 'abcdefg'
>>> s[0]
'a'
>>> s[1]
'b'
>>> s[-1]
'g'
>>> s[::-1]
'gfedcba'
           

索引也可以为负值,负数索引表示从右往左开始计数,最后一个元素索引为-1,倒数第二为-2,以此类推.

2. 切片(分片)

使用索引可以获取单个元素,使用分片可以获取序列中指定范围内的元素.切片操作符[:]/[::]

obj[start_index:end_index] 表示获取从start_index开始到end_index-1结束所有索引对应的元素
           

切片中冒号左边索引对应的元素晚于右边索引对应元素出现时,返回结果是[]

>>> l
[1, 2, 3, 4, 5, 6, 7]
>>> 
>>> l[0:5]
[1, 2, 3, 4, 5]
>>> l[4:6]
[5, 6]
>>> l[2:2]
[]
>>> l[-3:-1]          
[5, 6]
>>> l[-1:-3]
[]
           
obj[:end_index] 表示获取从0开始到end_index-1结束所有索引对应的元素  
obj[start_index:] 表示获取start_index对应的元素以及后面所有的元素
obj[:] 表示获取所有的元素
           

[start_index:end_index:step] (step>0)表示从start_index索引对应的元素开始每step个元素取出来一个,直到取到end_index对应的元素结束(step默认为1)

>>> ll[0:9:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ll[0:9:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ll[0:9:2]
[1, 3, 5, 7, 9]
>>> ll[::4]
[1, 5, 9]
>>> s[::-2]
'geca'
>>> 
           

[start_index:end_index:step] (step<0)表示从右到左反向提取元素,即从start_index索引对应的元素开始反向每step个元素取出来一个,直到取到end_index+1对应的元素结束.

此时start_index对应的元素要晚于end_index对应的元素出现,否则返回[]

>>> ll[0:6:-2]
[]
>>> ll[9:6:-2]
[10, 8]
>>> ll[6:9:-2]
[]
>>> ll[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> ll[:2:-3]
[10, 7, 4]
>>> ll[9:2:-1]
[10, 9, 8, 7, 6, 5, 4]