1.介绍
在Python中,凡是用引号引起来的全是字符串
字符串str,定义字符串可以使用单引号(推荐)或双引号,字符串有多行时可以使用三对单/双引号(’’’ , “”"),表示多行内容
>>> s = ''' welcome
... to
... beijing
... '''
>>> print(s)
welcome
to
beijing
>>>
在安全和运维工作中所要处理的数据类型主要是字符串
每个字符串都是一个对象,来自 str 类
>>> isinstance('abc', str)
True
>>> isinstance(123, str)
False
每个字符串都可以调用 str 类中的方法
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__',....., 'upper', 'zfill']
>>> help(str.upper) #查看str类的upper方法的帮助
2. 索引
字符串中的每个字符都可以看作一个独立的元素,都有一个相应的索引编号,索引编号从 0 开始
>>> a = "Python"
>>> a[0]
'P'
>>> a[4]
'o'
>>> a[-1] #最后一个数
'n'
>>>
#逆序逐一显示一个列表的所有元素
l1 = [1, 2, 3, 4, 5, 6]
while l1:
print(l1[-1])
l1.pop()
3. 切片
指定一个索引区间,取出指定的字符串,这就称为切片
切片的格式:s[起始索引:结束索引:步长]
- 起始索引默认为 0
- 结束索引不包含该索引本身,省略时表示一直取到字符串的终点
- 步长(默认为 1) :表示每几个出来1个,步长如果是负数,从右向左取,如果是正数,从左到右取
>>> a = "Python"
#[0:5)这是一个左闭右开的区间,作用是获取索引号是0-4的5个数据
>>> a[0:5] #结束索引不包含该索引本身,即,取出0-4的索引
'Pytho'
>>> a[3:] #结束索引不包含该索引本身,省略时表示一直取到字符串的终点
'hon'
>>> a[:3] #表示从头获取
'Pyt'
>>>
>>> a[:] #冒号两则的序号不写,表示起点或终点位置,即取出全部
'Python'
>>>
>>> a[::-1] #翻转
'nohtyP'
>>>
>>> a='hello world'
>>> a[-5:]
'world'
>>>
#索引为[1,8)的字符,每两个取一个
>>> a='hello world'
>>> print(a[1:8:2])
el o
>>>
#所有字符,每两个取一个
>>> a='hello world'
>>> a[::2]
'hlowrd'
>>>
回文: 上海自来水来自海上
让用户随便输入一句话. 判断这句话是否是回文
content = input(">>>:")
# 把这句话倒过来. 和原来这句话是否相等就可以了
s = content[::-1] # 从右向左切. 从头切到尾
if s == content:
print("是回文")
else:
print("不是回文")
4. 字符串遍历
字符串遍历:依次取出字符串中的每个字符,再挨个处理
>>> a = "I love Python"
>>> for i in a:
... print(i, end='')
...
I love Python>>>
>>>
#使用while循环非常啰嗦,不建议使用
>>> a = "I love Python"
>>> i = 0
>>> while i < len(a):
... s1 = a[i]
... print(s1)
... i += 1
...
I
l
o
v
e
P
y
t
h
o
n
>>>
将字符串中的字符依次赋值给多个变量
>>> a,b,c = '123'
>>> a
'1'
>>> b
'2'
>>> c
'3'
>>> nums = (4,8,9,45,78,450)
>>> a, b, c, d, e, f = nums
>>> print(a, b, c, d, e, f)
4 8 9 45 78 450
>>>
>>> a = b = c = 123
>>> a
123
>>> b
123
>>> c
123
>>>
5. 序列类型
序列表示索引为非负整数的有序对象集合,包括字符串、列表和元组
- 字符串是字符的
- 列表和元组是任意Python对象的序列
- 字符和元组属于不可变序列,而列表则支持插入,删除和替换元素
- 所有序列都支持迭代
6. 字符类型:
- 字符串:放入单引号,双引号和三引号中的文本
- 如果要使用unicode编码,则在字符之前使用字符u进行标识,如u"songwanbo"
- 文档字串:模块、类或函数的第一条语句是一个字符的话,该字符串成为文档字符串,可以使用__doc__属性引用
def printName():
"test function"
print "hello world"
>>>printName
>>>printName.__doc__
7. 字符串连接
str1 = "welcome "
str2 = "song wan bo"
str3 = str1 + str2 #字符串只能和字符串进行拼接, 数值类型不能直接和字符串进行拼接,需要进行对数值类型进行转换
print("str3:",str3)
8. 输出重复字符串
str1 = "song"
str2 = str1 * 3
print("str2:",str2)
9. 截取字符串
str = "songwanbo"
str1 = str[4:7]
print("str1:",str1)
10.成员关系判断
str = "songwanbo"
print("wan" in str)
print("wan1" not in str)
11. 适用于所有序列的操作和方法
索引运算符:str[i]
切片运算符:str[i:j] #包含i,不包含j
扩展切片运算符:str[i:j:stride]
min(s)和max(s)只适用于能够对元素排序的序列
sum(s)只适用于数字序列
项目 | 描述 |
s[i] | 返回一个序列的元素i |
s[i:j] | 返回一个切片 |
s[i:j:stribe] | 返回一个扩展切片 |
len(s) | s中的元素个数 |
min(s) | s中的最小值 |
max(s) | s中的最大值 |
sum(s[,initial]) | s中的各项和 |
all(s) | 检查s中的所有项是否为True |
any(s) | 检查s中的任意项是否为True |
支持运算:
索引、切片、min()、max()、len()等
支持操作:
对象的自有的方法:
如果没有ipython,可以用dir(str)获取属性和方法列表,针对特定的方法可以使用帮助比如:help(str.find)