字符串的形态是怎样的呢?可以进行哪些操作呢?
声明
可以用单引号、双引号以及三引号,那么使用上有什么区别呢?
str1 = 'hello world'
str2 = "hello world"
str3 = '''hello world'''
我们可以发现输出结果都是一样的,但是如果字符串中有特殊符号呢?
str4 = 'hello, I'm Jerry'
可以看到,这时候str4的值为’hello , I‘ ,那么我们该怎么声明完整的内容呢?
#方法一
str4 = 'hello, I\'m Jerry'
#方法二
str4 = "hello, I'm Jerry"
Python 之禅第一条是:Beautiful is better than ugly. 我们可以明显感觉到方法二比方法一在视觉上更加优美,这就是Python 支持单引号和双引号都能用来声明字符串的原因。
反之,如果字符串中包含双引号,也可以使用单引号来声明字符串
str5 = 'My favorite song is "Free to Be You and Me."'
以上特殊情况,我们也都可以用三引号来声明字符串,但是除此之外,三引号还有什么用呢?
str4 = '''hello, I'm Jerry'''
str5 = '''My favorite song is "Free to Be You and Me."'''
一般情况下,如果想要将字符串写成多行,需要使用换行符\n,但是三引号可以直接通过换行来将字符串扩展成多行。
#换行符
str4 = "hello,\nI'm Jerry"
#三引号
str4 = '''hello,
I'm Jerry'''
通过上面的例子我们了解了转义字符在字符串中的作用,那么如果我们想要在打印转义字符时转义字符不起作用呢?
str6 = '\n' #输出结果是一行空行
str6 = r'\n' #输出结果为\n
忽略转义符:r’…’ (r是raw的意思)
查看字符串中的值
python可以使用方括号来截取字符串
str1 = 'hello world'
str1[0]
str1[0:2]
Out[2]: 'h'
Out[3]: 'he'
需要注意的是:字符串不可以原位修改,需要重新赋值
字符串连接
在python中,我们利用操作符 + 来连接字符串
a = 'hello'
b = 'world'
a + b
Out[4]: 'helloworld'
也可以对字符串进行截取并与其他字符串进行连接
a[0:3] + b
Out[5]: 'helworld'
字符串格式化
name = 'Jerry'
salary = '1000'
print('{} -> {}'.format(name,salary))
#输出结果为Jerry -> 1000
除了使用format格式化,也可以使用下面这种方法
print("My name is %s and salary is %d !" % ('Jeff', 10.23))
#输出结果为My name is Jeff and salary is 10 !
其他字符串运算符
如果我们想要重复字符串内容,可以使用操作符 *
h = 'ha'
h*10
Out[6]: 'hahahahahahahahahaha'
如果我们知道字符串中是否包含指定的字符,可以使用操作符 in
'a' in h
如果我们知道字符串中是否不包含指定的字符,可以使用操作符 not in
'a' not in h