Python 打基础系列二 字符串(二) |
您所在的位置:网站首页 › python输出list元素换行 › Python 打基础系列二 字符串(二) |
本文案的整理,出于对自己日常学习的整理,小编也在努力学习,有错的地方希望大家留在评论区,有问题也可以加我QQ1300521747。除此之外,小编为了强化自己的学习,特地提供了很多案例和问题供大家学习和思考。 五、字符串的切片字符串的切片看上去非常复杂,其实很简单,分为下面几种 首先理解,字符串中每个字符都分配一个数字索引,第一个索引是0,第二个索引是1,依此类推。 1、获取单个字符 str[index], index为下标索引,从0开始,如果索引为负数则是倒着开始 print("Hello"[0]) # 获取第一个字符,字符获取从0开始,第二个字符为1 # 字符串的下标计数从0开始,它是一个标记特殊的list(数据结构会讲到) print("Hello"[2]) # 获取第三个字符 print("Hello"[-1]) # 获取倒数第一个字符,使用负数表示获取倒数第几个字符 2、获取多个字符 str[start:end] #读取索引start开始到索引为end-1 结束的字符 。 w = 'woodman good!' print(w[1:3]) # 获取索引1到2的字符 输出结果:oo print(w[:4]) # 获取前4位 print(w[5:]) # 获取从索引号5开始后面的字符串 输出结果:an good! print(w[:]) # 获取整个字符串 print(w[5:-1]) # 获取从索引号5开始后面的字符串,不包括最后一位。 输出结果:an good print(w[-5:-1]) # 获取倒数第5位到倒数第1位 输出结果:good 3、通过步长截取(自动化中没什么用) str[start:end:step] #读取索引start开始每相隔step读取字符直到索引为end-1 结束 w = 'woodman good!' print(w[1:10:2]) # 表示从第二个字符开始截取,间隔2个字符取一个 #输出结果:oda o # 自己尝试一下索引为负数的 4、拓展 字符串切片有几种特殊的用法 w = 'woodman good!' print(w[::2]) # 隔两个截取一个字符串 #输出结果:womngo! print(w[::-1]) # 字符串倒叙,这个是比较有意思的 #输出结果:!doog namdoow 六、字符串函数1、常用字符串函数 # 前面4个要牢记,百分百用到 string = ' 我是个木头人,我是个大帅哥 ' string.replace('帅哥', '美女') # 替换字符串,帅哥替换从美女 string.strip() # 去除左右空格 string.split(',') # 拆分字符串,返回list string.find(',') # 查找字符串,返回索引号 string = "I'am woodman" print(string.upper()) # 将字符串全部转为大写 print(string.lower()) # 将字符串全部转为小写 print(string.title()) # 将字符串单词的第一个字母转为大写,其它字母小写 注意:所有的字符串函数都是有返回值的,它不是对原有字符串操作,你需要一个变量来接收你处理后的字符串。 如:a=string.strip(),string.strip()得到的值传递给a,但是string的值没有被改变。 2、字符串函数大全(新手快速略过,有些的知道有这个函数就可以,用的时候查资料) #字母处理1.string.capitalize() #首字母大写,其他小写 2.string.title() 返回元字符串,且将字符串第一个字母转为大写,其它字母小写 3.string.swapcase() #颠倒字母大小写 用于对字符串的大小写字母进行转换,小写字符转为大写,大写字母转为小写 4.string.upper() 将字符串全部转为大写 5.string.lower() 将字符串全部转为小写 #去除空格或者指定字符串1.string.strip([string]) 去除字符串中首尾的字符串,不带参数默认去除空 2.string.lstrip([string]) 去除字符串左边字符串,不带参数默认去除空格 3.string.rstrip([string]) 去除字符串右边字符串,不带参数默认去除空格 七、格式化对齐1.string.center(width[, fillchar]) 返回一个原字符串居中对齐,width为总长度,两边用一个字符fillchar填充,如果指定的长度小于原字符串的长度则返回原字符串。 注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常 2.string.ljust(width[, fillchar]) 返回原字符串左对齐,并使用空格填充至指定长度的新字符串,如果指定的长度小于原字符串的长度则返回原字符串。注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常 3.string.rjust(width[, fillchar]) 返回原字符串右对齐,并使用空格填充至指定长度的新字符串,如果指定的长度小于字符串的长度则返回原字符串。注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常 4.string.zfill() 返回指定长度的字符串,原字符串右对齐,前面填充0 on格式化字符串(格式化输出)转换说明符解释%d、%i转换为带符号的十进制整数%o转换为带符号的八进制整数%x、%X转换为带符号的十六进制整数%e转化为科学计数法表示的浮点数(e 小写)%E转化为科学计数法表示的浮点数(E 大写)%f、%F转化为十进制浮点数%g智能选择使用 %f 或 %e 格式%G智能选择使用 %F 或 %E 格式%c格式化字符及其 ASCII 码%r使用 repr() 函数将表达式转换为字符串%s使用 str() 函数将表达式转换为字符串【实例】输出一个整数: age = 8 print("我已经%d岁了!" % age) 运行结果:我已经8岁了! 说明:在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%d说明符,它最终会被后面的 age 变量的值所替代。中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号( )包围起来。请看下面的例子: name = "C语言中文网" age = 8 url = "http://c.biancheng.net/" print("%s已经%d岁了,它的网址是%s。" % (name, age, url)) 运行结果:C语言中文网已经8岁了,它的网址是http://c.biancheng.net/。 总之,有几个占位符,后面就得跟着几个表达式。 指定最小输出宽度当使用表1中的转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置): · %10d 表示输出的整数宽度至少为 10; · %20s 表示输出的字符串宽度至少为 20。 请看下面的演示: n = 1234567 print("n(10):%10d." % n) print("n(5):%5d." % n) url = "http://c.biancheng.net/python/" print("url(35):%35s." % url) print("url(20):%20s." % url) 运行结果: n(10): 1234567. n(5):1234567. url(35): http://c.biancheng.net/python/. url(20):http://c.biancheng.net/python/. 说明:从运行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。 你看,这里指定的只是最小宽度,当数据的实际宽度足够时,指定的宽度就没有实际意义了。 指定对齐方式默认情况下,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python 支持的标志如下: Python 支持的标志标志说明-指定左对齐+表示输出的数字总要带着符号;正数带+,负数带-。0表示宽度不足时补充 0,而不是补充空格。几点说明: · 对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。 · 对于小数,以上三个标志可以同时存在。 · 对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。 请看下面的代码: n = 123456 # %09d 表示最小宽度为9,左边补0 print("n(09):%09d" % n) # %+9d 表示最小宽度为9,带上符号 print("n(+9):%+9d" % n) f = 140.5 # %-+010f 表示最小宽度为10,左对齐,带上符号 print("f(-+0):%-+010f" % f) s = "Hello" # %-10s 表示最小宽度为10,左对齐 print("s(-10):%-10s." % s) 运行结果: n(09):000123456 n(+9): +123456 f(-+0):+140.500000 s(-10):Hello . 指定小数精度对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。 精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下: %m.nf%.nf m 表示最小宽度,n 表示输出精度,.是必须存在的。 请看下面的代码: f = 3.141592653 # 最小宽度为8,小数点后保留3位 print("%8.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0 print("%08.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0,带符号 print("%+08.3f" % f) 运行结果: 3.142 0003.142 +003.142 #替换1.string.replace(old, new[, count]) 用新的字符替换老字符,还可以指定替换的个数,默认全部替换 2.string.expandtabs([n]) 将字符串中(tab符号)\t转换成n个空格 #字符串搜索1.string.find(sub [,start [,end]]) 返回sub字符串第一次出现的索引位置,可以通过start和stop参数设置搜索范围,如果未找到sub时返回-1 2.string.rfind(sub [,start [,end]]) 返回sub字符串最后一次出现的索引位置,如果没有匹配项则返回-1,可以通过start和stop参数设置搜索范围 3.string.index(sub [,start [,end]]) 类似于string.find()方法。注意:未找到sub时会报出异常 4.string.rindex(sub [,start [,end]]) 类似于string.rfind()方法。注意:未找到sub时会报出异常 #字符串分割1.string.split([sep [,maxsplit]]) 用来根据指定的分隔符将字符串进行分割,不包含分隔符,结果存为列表,不指定sep时,默认将将空格作为分隔符 2.string.partition(sep) 用来根据指定的分隔符将字符串进行分割,分割点为首次出现sep的地方,且包含分隔符,结果存为元组,且固定为3个元素,如果sep不存在字符串中,则后面2个元素为空 3.string.rpartiton() 用来根据指定的分隔符将字符串进行分割,分割点为最后一次出现sep的地方,且包含分隔符,结果存为元组,且固定为3个元素,如果sep不存在字符串中,则前面2个元素为空 #字符串判断1.string.isupper() 返回字符串中是否全为大写 --> True/False 2.string.islower() 返回字符串中是否全为小写 --> True/False 3.string.isdigit() 返回字符串中是否只包含数字 --> True/False 4.string.isalpha() 返回字符串中是否只包含字母 --> True/False 5.string.isalnum() 返回字符串中是否只包含字母或数字 --> True/False 6.string.isspace() 返回字符串中是否只包含空格(tab也算空格) --> True/False 7.string.istitle() 返回字符串中首字母是否大写 --> True/False 8.string.startswith(prefix[, start[, end]]) 返回字符串是否以某字符串开始,可以通过start和stop参数设置搜索范围 9.string.endswith(suffix[, start[, end]]) 返回字符串是否以某个字符串结束 可以通过start和stop参数设置搜索范围 #其它1.string.count(sub[, start[, end]]) 计数字符串中某子集的数量,可以通过start和stop参数设置搜索范围 2.len(string) 获取字符串的长度 3.list(string) 字符串转列表 4.string.join(iterable) 列表转字符串,用于将序列中的元素以指定的字符string连接生成一个新的字符串。注意:iterable只能是字符串类型,否则会报出异常 5.string.encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串 6.string.decode(encoding='UTF-8',errors='strict') 解码字符串,出错默认报ValueError,除非errors是ignore或replace 7.string.translate(table [,deletechars]) 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到deletechars参数中 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |