字符串(string)
1.字符串定义
定义:由任意的字符组成,用单引号、双引号或者三引号成对表示的一种数据类型;
str1='这是string1'
str2="这是string2"
str3='''这是string3'''
str4=str([1,2,3,4]) #结果为“[1, 2, 3, 4]“,逗号后面有空格;
string1,string2,string3='string1',"string2",'''string3''' #一行同时赋多个值;
2.字符串的读取/查找
方法:下标读取,切片(slice)读取(同列表),index();
str1="这是一个字符串!"
print(str1) #这是一个字符串
print(str1[1]) #是
print(str[-1]) #!
print(str1[1:5:2]) #是个符
print(str1.index('一')) #2,返回子串在原字符串的起始位置,不存在时报错
print(str1.find('一')) #2,返回子串在原字符串的起始位置,不存在则返回-1
3.字符串合并和修改
方法:str1+str2;
str1="hello"
str2="world"
str3=str1+str2 #helloworld;
字符串不能直接通过下标进行修改,如需修改字符串,可以通过字符串的切片读取和合并的操作来实现修改字符串的目的;
string="这是原字符串"
string1=string[:2]+"修改后"+string[3:]
print(string1) #这是修改后的字符串
4.字符串的删除
方法:del函数直接删除字符串对象
5.转义字符
在使用一些特殊的字符的时候,需要使用用反斜杠“ \ ”对字符进行转义;
转义字符 | 描述 |
\ (行尾) | 续行 |
\ | 反斜杠符 |
\" 和\’ | 双引号和单引号 |
\b | 退格 (backspace) |
\r | 回车 |
\n | 换行 |
\a | 响铃 |
\e | 转义(试了一下,好像\e是直接输出的,不知道这个转义是什么意思) |
\f | 换页 |
v | 纵向制表符 |
\t | 横向制表符(table) |
\000 | 空(效果好像和空格一样) |
\oyy | 八进制yy代表的ASCII码(试了一下,好像没有效果) |
\xyy | 十进制yy代表的ASCII码(这个正常输出) |
\other | 其它的字符以普通格式输出 |
6.字符串运算符
令a=“hello”,b=“python”
运算符 | 描述 | 示例 |
+ | 字符串合并 | >>>a+b "hellopython" |
* | 字符串多次合并 | >>>a*3 "hellohellohello" |
[] | 下标操作读取 | >>>a[1] “e” |
[:] | 切片读取 | >>>a[1:3] “el” |
in | 成员运算符 | >>>‘e’ in a True |
not in | 成员运算符 | >>>‘e’ not in a False |
r/R | 原始字符串,所有的字符串按照原本的格式,忽略所有的转义,语法和普通字符串基本一样,不分大小写 | >>>r"\n\r\t" |
% | 字符串格式符 |
7.格式化字符串
**基本用法:**将一个值插入到一个有字符串格式符的字符串中;
print("His name is %s, he is %d years old"%('Jack', 20))
#His name is Jack, he is 20 years old
字符串格式化符号
符号 | 描述 |
%d | 整型 |
%u | 无符号整型 |
%o(没有大写) | 八进制整型 |
%x/%X | 十六进制整型/十六进制整型(大写) |
%f | 浮点型,可指定精度(如:%.2f,保留两位小数) |
%e/%E | 用科学计数法格式化浮点型 |
%g | %f和%e的简写 |
%G | %F和%E的简写 |
%c | ASCII码 |
%s | 字符串 |
%p | 用十六进制格式化变量地址 |
格式化操作符辅助指令
符号 | 功能 |
* | 定义宽度或者小数点精度 |
- | 用作左对齐 |
+ | 正数前面显示(+) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前显示(‘0’),在十六进制前显示‘0x’或者‘0X’ |
‘0’ | 显示在数字前面的填充‘0’(默认是空格) |
% | ‘%%’输出% |
(var) | 映射变量 |
m,n | m是显示最小总宽度,n是小数点后的位数(在条件允许的情况下) |
在python2.6开始,新增了一种字符串格式化的函数str.format(),增强了字符串格式化的功能;
8.python的三引号
在python中三引号可以将复杂的字符串进行复制;
三引号允许一个字符串跨多行,字符串可以包含换行符等其他特殊字符,通常是成对的单引号或者双引号;
>>>h="""12
34"""
>>>h
'12\n34'
>>>print(h)
12
34
常用于使用HTML或者SQL代码的情况下;
9.Unicode字符串
>>> u"Hello world!"
u'Hello world!'
引号前小写的‘u’表示创建的是Unicode字符串,如需加入特殊字符,可以使用python的Unicode-Escape编码;