1.字符串
用单引号或双引号括起来的字符串。‘HelloWorld’或"HelloWorld"
字符转义:特殊字符已经被定义,若字符串中包含特殊的字符时,加"\"进行转义。
下列为常用的转义符
字符 | 表意 | Unicode编码 |
\t | 水平制表符 | \u0009 |
\n | 换行符 | \u000a |
\r | 回车 | \u000d |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
>>> s = 'Hello\tWorld'
>>> print(s)
Hello World
>>> s = 'Hello\nWorld'
>>> print(s)
Hello
World
>>> s = 'Hello\rWorld'
>>> print(s)
Hello
World
>>> s = 'Hello\"World'
>>> print(s)
Hello"World
>>> s = 'Hello\'World'
>>> print(s)
Hello'World
>>> s = 'Hello\\World'
>>> print(s)
Hello\World
>>> s = 'Hello\u000a World'
>>> print(s)
Hello
World
2.原始字符串
在字符串前加r表示原始字符串,原始字符串中的特殊字符不需要转义。
>>> s = 'Hello\nWorld'
>>> print(s)
Hello
World
>>> s = r'Hello\nWorld'
>>> print(s)
Hello\nWorld
3.长字符串
'''......'''(三个单引号括起来)或"""......"""(这是三个双引号,不是六个单引号)
>>> s = '''
《西游记·第八十七回》
人心生一念,天地悉皆知。
善恶若无报,乾坤必有私。
'''
>>> print(s)
《西游记·第八十七回》
人心生一念,天地悉皆知。
善恶若无报,乾坤必有私。
4.字符串与数字转换
(1)字符串转换数字
字符串与数字转换需要函数进行显示转换。
使用int()和float(),成功转换显示数字,不成功报错ValueError
>>> int('c') #默认int转换为十进制,c无法转换十进制报值错误
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
int('c')
ValueError: invalid literal for int() with base 10: 'c'
>>> int('c',16) #指定转换十六进制数字,正常转换
12
>>> int('9527')
9527
>>> int('95.27') #95.27无法转换为整数
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
int('95.27')
ValueError: invalid literal for int() with base 10: '95.27'
>>> float('95.27') #95.27可以转换为浮点数
95.27
注:int()函数可以指定转换进制
(2)数字转换字符串
str(),大多数数据类型都可以转换为str
>>> float('95.27')
95.27
>>> str(9527)
'9527'
>>> Num = 95.27
>>> str(Num)
'95.27'
(3)格式化字符串
我们经常遇到字符串和数字同时打印输出的情况,聪明的你可能想到用str()函数将数值转换字符后拼接打印。
>>> x = 4
>>> print("i乘i等于"+str(i*i))
i乘i等于16
这里介绍一种新方法——使用占位符{ }
>>> x = 4
>>> print('{0}乘{0}等于{1}'.format(x,x*x)) #参数序号表示占位符
4乘4等于16
>>> print('{y1}乘{y1}等于{y2}'.format(y1=x,y2=x*x)) #占位符用参数名表示
4乘4等于16
>>> print("x乘x等于{}".format(x*x)) #{}默认占位符表示x*x
x乘x等于16
(4)格式化控制符
实际就是占位符,用格式化控制符指定字符串格式。语法是{参数序号:格式控制符}或{参数名:格式控制符}。
>>> x = 0.2
>>> s = '唐伯虎'
>>> print('{0:s}在华府编号{1:d},书童工资{2:f}钱'.format(s,9527,x))
唐伯虎在华府编号9527,书童工资0.200000钱
格式化控制符如下表:
格式控制符 | 表示 |
s | 字符串 |
d | 十进制整数 |
f、F | 十进制浮点数 |
g、G | 十进制整数或浮点数 |
e、E | 科学计算法表示浮点数 |
o | 八进制整数,符号是小英文字母o |
x、X | 十六进制整数,x是小写表示,X是大写表示 |
5.操作字符串
(1)查找
find()方法,语法str.find(sub[,start[,end]]),表示在索引start到end之间查找子串sub,找到返回最左端索引位置,没找到返回-1。其中[ ]可以省略。
>>> s = 'Hello World'
>>> s.find('W')
6
>>> s.find(' ') #此处有空格
5
>>> s.find(' ',4,6) #从索引4开始到6找到空格
5
>>> s.find(' ',6,9) #从索引6开始到9找到空格
-1
(2)替换
replace()方法,语法str.replace(old,new[,max]),表示用new子串替换old子串,max表示替换次数,省略max表示替换所有old子串。
>>> s = 'H e l l o W o r l d'
>>> s.replace('l','!',1)
'H e ! l o W o r l d'
>>> s.replace('l','!')
'H e ! ! o W o r ! d'
(3)分割
split()方法,语法str.split(sep=None,maxsplit=-1),表示sep子串分割字符串str,maxsplit表示最大分割次数,省略maxsplit表示不限制分割次数,即全部分割。
>>> s = 'H e l l o W o r l d'
>>> s.split(' ')
['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
>>> s.split(' ',maxsplit=0)
['H e l l o W o r l d']
>>> s.split(' ',maxsplit=1)
['H', 'e l l o W o r l d']
>>> s.split(' ',maxsplit=2)
['H', 'e', 'l l o W o r l d']