字符串(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编码;