#!/usr/bin/python# 这一节学习的是python中的字符串操作# 字符串是在Python中作为序列存在的, 其他的序列有列表和元组# 1. 序列的操作S = 'Spam' # 定义了一个序列print(len(S)) # 获取序列的长度print(S[0]) # 获取字符串的第一个字符print(S[1]) # 获取字符串的第二个字符# 结论: python中的字符串是从0开始索引的# python的变量不需要提前声明# 当给一个变量赋值的时候就创建了它, 可能赋值的是任何类型的对象# 变量在使用之前必须赋值# 反向索引字符串print(S[-1]) # S中最后一个字符print(S[-2]) # S中倒数第二个字符print(S[len(S)-1]) # 从前往后数获得S中最后一个字符# 2. 分片操作, 也就是可以截取字符串中的一部分S = 'Spam'print(S[1:3]) # S中索引从1到2的子串, 不包括3, 也就是说是左闭右开的区间print(S[1:50]) # 后面的值可以很大print(S[-50:50]) # 估计从0~len# 在一个分片中, 左边界默认为0, 并且右边界默认为分片序列的长度print(S[1:])print(S[0:3])print(S[:-1]) # 这个也是取除了最后一个的其他字符, 记住是右开的print(S[:]) # 整个字符串, 记住不写就是0~len# 3. 字符串之间可以用加号+进行连接print(S + 'xyz')# 也就是Python编写的操作系统通常可以自动地适应不同类型的对象# 4. 不可变性# 跟java里面的final是一个意思, 就是你对字符串修改了之后,# 得到的是另外一个字符串, 而不是在这个基础之上进行的修改# 5. 字符串对象有哪些方法# find 查找子串# replace 替换# split 分割# upper 变为大写# isalpha 判断是不是字母# rstrip 去掉右边的空白字符# format 也是格式化的# 格式化操作, 联想一下printf# 6. 操作字符串的其他方法# len 获取字符串的长度# ord 获取字符对应的ascii值# \0 不代表着字符串结束print(len('A\0B\0C')) # 结果是5# python支持单引号、双引号和三引号# 模式匹配, 就是正则表达式了import re # 引入regular expressionmatch = re.match('Hello*(.*)world', 'Hello Python world')print(match.group(1))match.group() # 获取所有的匹配的字符串