字符串
字符串的作用是用来记录文字信息,其内容用引号引起来
例如:
s1 = 'abc'
s2 = "ABC"
s3 = '''hello'''
s4 = """world"""
字符串怎么可能少了转义呢?一起来欣赏一下强大的转义字符串吧!
举个栗子:
如果我们要打印 I’m a good boy ,当然只要不使用单引号还是很好实现的,比如:
>>> s = "I'm a good boy"
>>> s
"I'm a good boy"
但如果要求使用单引号呢?
>>> s = 'I'm a good boy'
SyntaxError: invalid syntax
>>>
很明显出现了语法错误,单引号把 ‘I’ 给包围起来了,但是后边的算什么呢?答案是什么也不是了,此时我们要原样打印出这句话就可以使用转义符’\’(反斜杠)了
如下:
>>> s = 'I\'m a good boy'
>>> s
"I'm a good boy"
常用的转义符表:
转义符号 | 含义 |
---|---|
\’ | 单引号’ |
\” | 双引号” |
两个反斜杠 | 反斜杠\ |
\n | 换行符 |
\r | 返回光标至行首 |
\t | 水平制表符 |
说起转义符反斜杠突然想起来关于文件路径的操作,如下:
>>> print('c:\file\newfile\abc\test')
c:ile
ewfilebc est
>>>
我们发现每个反斜杠和后边的一个字符都转为了特殊字符(\f, \n, \a, \t),我们可以使用双反斜杠打印反斜杠,这样后边的就不会被转义了
>>> print('c:\\file\\newfile\\abc\\test')
c:\file\newfile\abc\test
>>>
但是这样写也太麻烦了点,有没有简单点的方法呢?答案是肯定的,那就是使用原始字符串 ‘r’
原始字符串r
原始字符串,顾名思义,写入的是什么就是什么,就算有可以转义的也不会转义,如下:
>>> print(r'c:\file\newfile\abc\test')
c:\file\newfile\abc\test
>>>
>>> s = r'hello \n\t\rworld'
>>> s
'hello \\n\\t\\rworld'
我们不难发现,\f\n\t并没有被转义,而是原样打印出来了,但是如果打印本身就折行的呢,如打印:
hello
world
你好
boy
以上四行文字如何一次打印出来呢(不使用换行符等)?
可以使用三引号(三引号作用是引用,可以原样输出)
使用三引号如:
下面介绍和字符串相关的常用的方法:
方法 | 说明 |
---|---|
S.isdigit() | 判断字符串中的字符是否全为数字 |
S.isalpha() | 判断字符串是否全为英文字母 |
S.center(width[,fill]) | 将原字符串居中,左右默认填充空格 |
S.count(sub[, start[,end]]) | 获取一个字符串中子串的个数 |
S.find(sub[, start[,end]]) | 获取字符串中子串sub的索引,失败返回-1 |
S.strip([chars]) | 返回去掉左右char字符的字符串(默认char为空白字符) |
S.lstrip([chars]) | 返回去掉左侧char字符的字符串(默认char为空白字符) |
S.rstrip([chars]) | 返回去掉右侧char字符的字符串(默认char为空白字符) |
S.upper() | 生成将英文转换为大写的字符串 |
S.lower() | 生成将英文转换为小写的字符串 |
S.replace(old, new[, count]) | 将原字符串的old用new代替,生成一个新的字符串 |
S.startswith(prefix[, start[, end]]) | 返回S是否是以prefix开头,如果以prefix开头返回True,否则返回False |
S.endswith(suffix[, start[, end]]) | 返回S是否是以suffix结尾,如果以suffix结尾返回True,否则返回False |
挑几个简单举个栗子说说
S.isdigit()
判断输入的符是否都是数字
举个栗子:
>>> s = '123'
>>> s.isdigit()
True
>>> a = '123asd'
>>> a.isdigit()
False
>>>
S.center(width[,fill])
将原字符串居中,左右默认填充空格
举个栗子:
>>> a
'123asd'
>>> a.center(20)
' 123asd '
>>> a.center(20,'#')
'#######123asd#######'
>>>
说明:width是算上字符共占多少字符的空间,fill是填充的部分,默认为空格
S.count(sub[, start[,end]])
获取一个字符串中某个字符的个数
举个栗子:
>>> a = '112233asdgd44332255'
>>> a.count('3')
4
>>> a.count('3', 8)
2
>>> a.count('3',8,10)
0
>>>
说明:sub是要查找的字符,start是索引开始的位置,end是索引结束的位置,说白了就是在(start,end)这个范围内找sun字符出现过多少次
S.strip([chars])
返回去掉左右char字符的字符串(默认char为空白字符)
举个栗子:
>>> a = ' sss '
>>> a
' sss '
>>> a.strip()
'sss'
>>> s = '###ssss#'
>>> s.strip('#')
'ssss'
>>>
S.replace(old, new[, count])
将原字符串的old用new代替,生成一个新的字符串
举个栗子:
>>> a = 'aassddffgg'
>>> a.replace('a', 'mm')
'mmmmssddffgg'
>>> a.replace('d','hh',1)
'aasshhdffgg'
>>>
说明:old是替换的字符或字符串(必须是紧挨着的),new是要替换成的字符串,count是要替换的数量,默认为全部
本节完,谢谢