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)