python3之字符串str

字符串

字符串的作用是用来记录文字信息,其内容用引号引起来
例如:

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是要替换的数量,默认为全部

本节完,谢谢

猜你喜欢

转载自blog.csdn.net/geek_xiong/article/details/81945870