python 字符串
字符串操作
+ 字符串连接操作
str1 = 'aaaaaa'
str2 = 'bbbbbbbb'
print(str1+str2)
# aaaaaabbbbbbbb
* 字符串复制操作
str = '☆'
print(str * 10)
# ☆☆☆☆☆☆☆☆☆☆
[] 字符串索引
通过索引访问指定位置的字符,索引从头(0)开始,尾(-1)开始
str = 'Hello World !'
print(str[0])
# H
[开始索引: 结束索引: 间隔符] 字符串切片操作
str = 'Hello World !'
print(str[0:5])
# Hello
r 元字符串,字符串中的转移字符不会转移,当作普通字符
str = '\nHel\rlo Wo\trld !'
print(str)
str = r'\nHel\rlo Wo\trld !'
print(str)
# lo Wo rld !
# \nHel\rlo Wo\trld !
字符串函数
capitalize 字符串首字母大写
str = 'hello world!'
print( str.capitalize() )
# Hello world!
title 每个单词首字母大写
str = 'hello world!'
print( str.title() )
# Hello World!
upper 每个字母变大写
str = 'hello world!'
print( str.upper() )
# HELLO WORLD!
lower 每个字母变小写
str = 'HELLO WORLD!'
print( str.lower() )
# hello world!
swapcase 大小写互换
str = 'HELLO world!'
print( str.swapcase() )
# hello WORLD!
len() 计算字符串的长度
str = 'hello world!'
print( len(str) )
# 12
count 计算某个字符串出现的次数
字符串.count(查找字符串, [,开始索引, 结束索引])
str = 'hello world!'
print( str.count('l') )
# 3
find 计算某个字符串第一次出现的位置
字符串.find(查找字符串, [,开始索引, 结束索引])
找不到, 返回-1
str = 'hello world!'
print( str.find('l') )
# 2
index 计算某个字符串第一次出现的位置
字符串.index(查找字符串, [,开始索引, 结束索引])
找不到, 抛出异常错误
str = 'hello world!'
print( str.find('l') )
# 2
startswith 检测是否以某字符串开头
url = "http://www.baidu.com/s?ie=utf-8"
print( url.startswith('http') )
# True
print( url.startswith('https') )
# False
endswith 检测是否以某字符串结尾
isupper & islower 检测字符串(英文字母)是否都是大写 | 小写字母
print('HELLO WORLD'.isupper())
# True
print('hello world'.isupper())
# True
isalnum 检测字符串是否由数字,字母和文字等组成
print( '1234567890abcd你好'.isalnum() )
# True
isalpha 检测字符串是否由字母和文字等组成
print( 'abcd你好'.isalnum() )
# True
isspace 检测字符串是否由空白字符组成
print( ' \t\n'.isspace() )
# True
istitle 检测字符串是否符合title()的结果
print( 'Hello World'.istitle() )
# True
isdigit 检测字符串是否由纯数字组成(十进制)
isnumeric 检测字符串是否是数值字符串,效果和isdigit 一致
isdecimal
print( '1234567890'.isdigit() )
# True
print( '1234567890'.istitle() )
# True
print( '1234567890'.isdecimal() )
# True
split 切割字符串
splitlines 以回车换行为切割符切割
str = 'a = 2'
print( str.split('=') )
# ['a ', ' 2']
join 使用指定字符串,将列表数据拼接
list1 = ['a', 'b', 'c']
print( '*'.join(list1) )
# a*b*c
zfill 在原有字符串长度不足指定长度时,用0填充,原字符串内容靠右
center 居中
ljust 左对齐
rjust 右对齐
print( 'abcd'.zfill(8) )
# 0000abcd
print( 'abcd'.center(8, '0') )
# 00abcd00
print( 'abcd'.ljust(8, '0') )
# abcd0000
print( 'abcd'.rjust(8, '0') )
# 0000abcd
strip 去掉指定字符串
lstrip
rstrip
str = '*****abcd*****'
print( str.strip("*") )
# abcd
print( str.lstrip("*") )
# abcd*****
print( str.rstrip("*") )
# *****abcd
字符串替换
maketrans() 建立映射表,一一对应
translate() 替换操作
str = 'a的1是a1,a的2是a2,a的3是a3,a的4是a4'
table = ''.maketrans('a', 'b')
print(table)
# {97: 98}
res = str.translate(table)
print(res)
# b的1是b1,b的2是b2,b的3是b3,b的4是b4
format 格式化字符串
- 位置参数
str = '小米的年龄是{},身高是{},体重是{}'
res = str.format('21', '188cm', '60kg')
print(res)
# 小米的年龄是21,身高是188cm,体重是60kg
- 关键字参数
str = '小米的年龄是{age},身高是{height},体重是{wight}'
res = str.format(age = '21', wight = '66kg', height = '188cm')
print(res)
# 小米的年龄是21,身高是188cm,体重是66kg
- 通过下标
str = '小米的年龄是{0[0]},身高是{0[1]},体重是{0[2]}'
res = str.format([21, '168cm', '60kg'])
print(res)
# 小米的年龄是21,身高是168cm,体重是60kg
str = '小米的年龄是{0[age]},身高是{0[weight]},体重是{0[height]}'
res = str.format({'age':21, 'weight':'168cm', 'height':'60kg'})
- 格式限定符
{ : 特殊字符 > 10 } # 居右
{ : 特殊字符 < 10 } # 居左
{ : 特殊字符 ^ 10 } # 居中
- 精度计算
str = 'Π = {:.4f}'
res = str.format(3.1415926)
print(res)
# Π = 3.1416
- 进制
{:b} # 二进制
{:o} # 八进制
{:d} # 十进制
{:f} # 十六进制
- 千位分割符 " , "
{:,}
字符串模块
import string
ascii_letters 获取所有ascii码中字母字符的字符串(包含大小写)
ascii_lowercase 小写字母...
ascii_uppercase 大写字母...
A~Z : 65~90
a~z : 97~122
0~9 : 48~57
print(string.ascii_letters)
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
ord('A') # 65
chr(65) # A
print(string.ascii_lowercase)
# abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase)
# ABCDEFGHIJKLMNOPQRSTUVWXYZ
digits 十进制所有数字字符
hexdigits 十六进制所有数字字符
octdigits八进制所有数字字符
print(string.digits)
# 0123456789
print(string.hexdigits)
# 0123456789abcdefABCDEF
print(string.octdigits)
# 01234567
printable 获取所有可打印的字符
punctuation 获取所有的标点符号
whitespace 获取所有空白字符
print(string.printable)
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...
print(string.punctuation)
# !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
print(string.whitespace )
# \t\n\r\x0b\x0c