创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。
字符串运算
- 下表实例变量a值为字符串 "Hello",b变量值为 "Python":
操作符 描述 实例 + 字符串连接 a + b 输出结果: HelloPython * 重复输出字符串 a*2 输出结果:HelloHello [] 通过索引获取字符串中字符 a[1] 输出结果 e [ : ] 截取字符串中的一部分 a[1:4] 输出结果 ell in 成员运算符 - 如果字符串中包含给定的字符返回 True H in a 输出结果 1 not in 成员运算符 - 如果字符串中不包含给定的字符返回 True M not in a 输出结果 1 r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面
的意思来使用,没有转义特殊或不能打印的字符。
原始字符串除在字符串的第一个引号前加上字母"r"(可以大
小写)以外,与普通字符串有着几乎完全相同的语法。print r'\n' prints \n 和 print R'\n' prints \n % 格式字符串 请看下一节内容。
我们定义一个 s='python'语句,它在计算机中的执行顺序是先在内存中创建一个字符串 Python ,在程序栈寄存器中创建一个变量 s,最后把 Python 的地址赋给s 。
再来看看字符串的一些常见操作:
s = '学习Python' # 切片 # 字符串索引index取值范围:-len()到len()-1 越界会报错 s[0], s[-1], s[3:], s[::-1] # '优', 'n', 'Python', 'nohtyP的雅优' # 替换,还可以使用正则表达式替换 s.replace('Python', 'Java') # '学习Java' # 查找,find()、index()、rfind()、rindex() s.find('P') # 3, 返回第一次出现的子串的下标 s.find('h', 2) # 6, 设定下标2开始查找 s.find('23333') # -1, 查找不到返回-1 s.index('y') # 4, 返回第一次出现的子串的下标 s.index('P') # 不同与find(), 查找不到会抛出异常 # 转大小写, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower() s.upper() # '学习PYTHON' s.swapcase() # '学习pYTHON', 大小写互换 s.istitle() # True s.islower() # False # 去空格,strip()、lstrip()、rstrip() # 格式化 s1 = '%s %s' % ('Windrivder', 21) # 'Windrivder 21' s2 = '{}, {}'.format(21, 'Windridver') # 推荐使用format格式化字符串 s3 = '{0}, {1}, {0}'.format('Windrivder', 21) s4 = '{name}: {age}'.format(age=21, name='Windrivder') # 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join l = ['2017', '03', '29', '22:00'] s5 = '-'.join(l) # '2017-03-29-22:00' s6 = s5.split('-') # ['2017', '03', '29', '22:00']