1.字符串的基本操作
所有标准的序列操作(索引、分片、乘法、判断成员的资格、求长度、取最大值和最小值)都适用于字符串。
Python 字符串
- 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
- 创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!' var2 = "Python Runoob"
Python访问字符串中的值
- Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
- Python访问子字符串,可以使用方括号来截取字符串,如下实例:
#!/usr/bin/python var1 = 'Hello World!' var2 = "Python Runoob" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]
以上实例执行结果:
var1[0]: H var2[1:5]: ytho
2.转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
3.字符串运算
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | >>>a + b |
* | 重复输出字符串 | >>>a * 2 |
[] | 通过索引获取字符串中字符 | >>>a[1] |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | >>>"H" in a |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | >>>"M" not in a |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | >>>print r'\n' |
% | 格式字符串 |
4.字符串格式化
多个值需要变成元祖
#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
My name is Zara and weight is 21 kg!
使用规则
- 当一个参数时,不需要设置一个元组。
- 当一个以上的参数时必须为一个元组。
>>> print'%d'%1
1
>>> print '%d,%d'% 1,2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>> print '%d,%d'%(1,2)
1,2
字段的宽度和精度
- 字段的宽度(是转换后的值所保留的最小字符个数,及空格+字符所占用的格式)
- 字段的精度(是目标数字打印时的显示精度,及几位小数点。)
- 字段的精度和宽度都可以使用‘*’配合元组来表示目标参数的宽度和精度。
示例代码:
>>> '%10f'% 1
' 1.000000'
>>> '%10d'1
File "<stdin>", line 1
'%10d'1
^
SyntaxError: invalid syntax
>>> '%10d' % 1
' 1'
>>> '%10d'% 1
' 1'
>>> '%10s'% str
"<type 'str'>"
>>> '%10s'% 'str'
' str'
>>>
>>> '%.*s'% (5,'hsidshidshid')
'hsids'
>>> '%.*f'% (3,1)
'1.000'
符号、对齐、和0
在字段宽度和精度钱还可以放置一个参数,即“标志”,该标志表达符号为“+、-、0、空格”
零的用法:
>>> '%010.2f'% 1
'0000001.00'
“+”作用:
“-”作用:
“空格”作用:
- python字符串格式化符号:
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
5.字符串方法
字符串的方法有很多,在这只介绍几个经常用的方法。
find
- 寻找某个字符串组中的子字符串。
- 还可以寻找两个相同的字符串的开头和终止位置。
'my name is cai'.find('cai')
'$$$ my name is cai $$$'.find($$$,0,19)#0代表的是起点,19代表的是终点;这个用法意义不大
lower
把所有的字符串都变成小写字母。
from string import *
a='MY NAME IS CAI'
a.lower()
capwords首字母变大写
from string import *
a="that's is my boby"
string.capwords("a")
strip
去除空格
' my name is cai '.strip()
split/join 这两个函数的作用是相逆的
join的作用是字符串的特殊相加;而split将字符串分割成序列。
c=['1','2','3','4']
d='+'
c=d.join(c)#列表没有这种方法所以对象不能为列表
c.split('+')
replece
' my name is cai,my baby is ren'.replace('ren','dan dan')