字符串
一般python中的字符串我们可以使用单引号或双引号括起来
单引号或双引号有什么区别呢?实际上是没有什么区别的
但是在特殊的情况下,区别就来了
字符串和转义字符串
正如上面所说,我们的字符串是用单引号和双引号括起来的,像这样
s = '这是一段字符串'
s = "这是一段字符串"
当然,这是比较常规的情况。我们还有一些不常规的情况。python就没有办法去正确的处理了,那我们就可能需要用到一些其它的方式来处理
当一段字符串中本身带有单引号怎么办?或者说,我们字符串里本身带有双引号怎么办?比如像这样:
s = 'I'm a python'
s = ""python"是我的名字"
这个时候,程序就会报错,那我们的单引号和双引号的区别就有了。
由于上面字符串中包含了单引号,这个时候 Python 会将字符串中的单引号与第一个单引号匹配,这样就会把 ‘I’ 当成字符串,而后面的 因为没有引号的帮助,就造成了语法错误。
如果我们在外面使用双引号括起来就可以解决这个问题,像这样:
s = "I'm a python"
假如字符串内容本身包含双引号,我们就可使用单引号将字符串括起来,像这样:
s = '"python"是我的名字'
我们使用转义符号当然也是可以的啦!Python 允许使用反斜杠(\)把字符串中的特殊字符进行转义。像这样:
'I\'m a python'
我们可以根据自己的喜好来选择,真的棒!
转义字符(\)相当好用,比如咱们一行内容太多的时候想换行,Python 又不是格式自由的语言,因此 Python 程序的换行、缩进都有其规定的语法。所以,Python 的表达式不允许随便换行。如果程序需要对 Python 表达式换行咱们也可以使用它,像这样:
s = '这是一段很有深度的文\
字,都写在一行里就会太多了'
这样的操作是可以的,方便我们的阅读。当然,也可以这样玩:
s = 1+3+5/7*\
6-2+1
对表达式也是可以换行的
长字符串
前面的文章中咱们聊到过 Python 多行注释使用三个引号(单引号、双引号都行)来包含多行注释内容,其实这是长字符串写法,只是由于在长字符串中可以放置任何内容,包括放置单引号、双引号都可以,如果所定义的长字符串没有赋值给任何变量,那么这个字符串就相当于被解释器忽略了,也就相当于注释掉了。使用时像这样:
s = '''
这是一个长字符串,
里面包含了很多内容,
包括123456这些数字,
还有@#¥%……&*'""这些乱七八糟的符号
'''
print(s) #这样就可以打印出这里面的内容啦
长字符串是非常强大的,里面单引号和双引号都可以包含。当然我们使用的时候,使用三个单引号或三个双引号都是可以的啦
字符串的拼接
如果我们把两个字符串写在一起,就可以达到拼接的效果,极其简单!就像这样:
s = '我们是''两个字符串'
print(s) #运行后就会显示:我们是两个字符串
当然这仅仅是其中一种特殊的方式,很多时候还是用不上的。我们普遍还是使用(+)来表示字符串的拼接运算符,就像这样:
s = '我们是'
a = '两个字符串'
print(s+a) #运行后就会显示:我们是两个字符串
有趣的是我们还可以使用逗号来进行拼接(,),这种拼接方式,字符串中间就会多出一个空格,像这样:
s = '我们是'
a = '两个字符串'
print(s,a) #运行后就会显示:我们是 两个字符串
这里需要注意的是,我们字符串只能和字符串进行拼接,如果是字符串和数字进行拼接,就会出现报错啦!TypeError: must be str, not int
这个时候我们只需要将数字转换为字符串就可。
python中str() 函数都可以将数值转换成字符串,像这样:
s = '我的分数是'
a = 100
print(s+str(a)) #运行后就会显示:我的分数是100
原始字符串
在我们的程序中有一些特殊的存在,比如\n,它表示着换行,就像这样:
print(hello\nworld) #这里的输出就像下面那样
'''
hello
world
'''
这个时候我偏偏想在中间加一个\n怎么办呢?炒鸡简单,再加一个转义符 \ 就可以搞定啦!像这样:
print(hello\\nworld) #这样就可以啦
但是如果一行中有很多这样需要转义的,都像这样写就太烦啦!所以我们又有一种超级简单的方法!我们可以借助于原始字符串来解决这个问题,原始字符串以“r”开头,原始字符串不会把反斜线当成特殊字符。就像这样:
print(r'hello\nworld')
字符串内置函数
- str.capitalize()第一个字母改为大写
返回一个字符串,并将字符串第一个字母改为大写
'aa'.capitalize() # Aa
- str.casefold()将大写转为小写
"ABC".casefold() #abc
- str.center(width[, fillchar])填充字符串
返回一个长度为width的字符串,如果width小于或等于str的长度返回原字符串,否则将str放在字符串的中间两边用fillchar填充,fillchar默认为空格
'ab'.center(10) # ' ab '
'ab'.center(10, '*') # '****ab****'
- str.count(sub[, start[, end]])包含字符串sub的个数
返回str中包含字符串sub的个数,start和end分别为开始查找和结束匹配的位置
'hello world'.count('l') # 3
'hello world'.count('l', 1, 5) # 2
- str.endswith(suffix[, start[, end]])字符串是否以suffix结尾
判断字符串是否以suffix结尾,start和end分别为开始查找和结束匹配的位置
'hello world'.endswith('d') # True
'hello world'.endswith('d', 1 ,3) # False
- str.find(sub[, start[, end]])返回sub在字符串中的位置
返回sub在字符串中的位置,start和end分别为开始查找和结束匹配的位置
'python'.find('p') # 0
'Python'.find('n') # 5
- str.isspace()字符串中的字符是否全为空白
字符串中的字符是否全为空白
'a'.isspace() # False
' '.isspace() # True
- str.isalnum()字符串是否全是数字和文字
字符串是否全是数字和文字
'aa'.isalnum() # True
'a*a'.isalnum() # False
'11'.isalnum() # True
- str.isalpha()字符串是否全是文字
字符串是否全是文字
'aa'.isalpha() # True
'11'.isalpha() # False
- str.isidentifier()判断字符串是否为合法的python标识符
判断字符串是否为合法的python标识符
'a'.isidentifier() # True
'!'.isidentifier() # False
- str.islower()是否全为小写字母
是否全为小写字母
'aa'.islower() # True
'Aa'.islower() # False
- str.istitle()是否为标题
字符串是否包含大写字母,并且大写字母前面不能有其他大写字母和小写字母
'Python'.istitle() # True
'python'.istitle() # False
- str.isupper()是否全为大写
字符串中的字母是否全为大写
'AA'.isupper() # True
'aa'.isupper() # False
- str.ljust(width[, fillchar])填充字符串
如果str的长度比width短,则在str的右侧补充fillchar,直到长度等于width,fillchar默认为空格
'100'.ljust(6,'0') # '100000'
- str.lower()大写字母全部改成小写字母
将字符串中的大写字母全部改成小写字母并返回
'AAAAAA'.lower() # aaaaaa
- str.upper()小写字母全部改成大写字母
将字符串中的小写字母全部改成大写字母并返回
'aaaaaa'.upper() # AAAAAA
- str.replace(old, new[, count])替换字符串
将字符串中old替换为new,count为可选参数,表示要替换的个数,默认全部替换
'aaabbb'.replace('a', 'b') # bbbbbb
- str.rfind(sub[, start[, end]])右向左查找字符串sub
从右向左在str中查找字符串sub,并返回查找到的第一个下标,start和end为查找的下标范围
如果没有查找到返回-1
'abcde'.rfind('a') # 0
'abcde'.rfind('q') # -1
- str.swapcase()字符串中字母的大小写互换
将字符串中字母的大小写互换
'AAAaaa'.swapcase() # aaaAAA
- str.title()字符串中单词的第一个字母改为大写其余的改为小写
将字符串中单词的第一个字母改为大写其余的改为小写
'aaaaaa'.title() # Aaaaaa
总结
没有任何总结
转载:https://blog.csdn.net/sinat_42463130/article/details/115554115