#Python字符串处理
2018-08-21 本文已影响31人
程序员丶星霖
Python字符串处理
一、输入与输出
1.1、输出
print(*values, sep=' ', end='\n', file=sys.stdout, flush=False)
- *values:表示要打印的值,表示任何多个无名参数,各个值之间用‘,’(逗号隔开),打印出来各个值之间用空格隔开。
- sep='':表示当输入多个打印的值时,各个值之间分割方式,默认空格,可以自定义。
- end='\n':控制print中传入值输出完后结束符号,默认为换行,这里可以设置为其他。
- file=sys.stdout:设置输出设备,以及把print中的值打印到什么地方,默认输出到终端,可以设置file=文件存储对象,把内容存到该文件中。
- flush=False:该参数主要是刷新,默认为False,不刷新,True时刷新。正常情况下当文件对象关闭时才把内容输出到a.txt,当flush=True时,它会立即把内容刷新存到a.txt中。
1.2、格式化操作
完整的语法:
%[(name)][flags][width].[precision]typecode
- (name)字典参数
- flags
- +:正数之前显示‘+’
- -:左对齐
- 0:数字之前用0填充
- %:%%转义表示普通字符
- width:显示宽度
- precision:小数点后的精度
- typecode
- %d:正数 %02d(占两个字符,不足两个字符用0补充)
- %f:浮点数 %.2f 精确到两位小数
- %s:字符串,数值
- %e:科学计数法
符号 | 含义 |
---|---|
%c | 格式化字符及ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 用科学计数法格式化浮点数 |
%g | 根据值的大小决定使用%f或%e |
%G | 作用同%g |
1.format()
此方法接受位置参数和关键字参数,二者均传递到一个叫replacement字段。
str1 = '{0} love {1}.{2}'.format('I', 'baidu', 'com')
print(str1)
- 字符串中的{0},{1}和{2}跟位置有关,依次被format()的三个参数替换。
str2 = '{a} love {b}.{c}'.format(a='I', b='baidu', c='com')
print(str2)
- {a},{b}和{c}就相当于三个标签,format()将参数中等值的字符串替换进去。
- 如果将位置参数和关键字参数综合在一起使用,那么位置参数必须在关键字参数之前。
str3 = '{0} : {1:.2f}'.format('圆周率', 3.1415926)
print(str3)
1.3、输入
Input输入:通过它能够完成从键盘获取数据,然后保存到指定的变量中,input获取的数据,都是以字符串的方式进行保存,即使输入的是数字,也是以字符串的方式保存的。
二、下标与切片
2.1、所谓“下标”就是编号,字符串实际是字符的组合。
a='asdf'
print(a[3])
2.2、切片
指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始下标:结束下标:步长]
三、字符串常用函数
函数&方法 | 描述 | 示例 |
---|---|---|
find | 检测字符串是否包含指定字符,如果是返回开始的索引值,否则返回-1 | str1='hello world' print(str1.find('lo')) |
index | 检测字符串是否包含指定字符,如果是返回开始的索引值,否则提示错误 | str1='hello world' print(str1.index('lo')) |
count | 返回str1在string中指定索引范围内[start,end]出现的次数 | str1='hello world' print(str1.count('lo')) print(str1.count('lo',5,len(str1))) |
replace | 将str1中的str1替换成str2,如果指定count,则不超过count次 | str1='hello world hello china' print(str1.replace('hello','HELLO')) print(str1.replace('hello','HELLO',1)) |
split | 如果maxsplit有指定值,则仅分割maxsplit个子字符串 | str1='hello world hello china' print(str1.split(" ")) print(str1.split(" ",2)) |
capitalize | 将字符串的首字母大写 | str1='hello world hello china' print(str1.capitalize()) |
title | 将字符串的首字母大写 | str1='hello world hello china' print(str1.title()) |
startwith | 检查字符串是否以某个字符串开头,是则返回True,否则返回False | str1='hello world hello china' print(str1.startswith('hello')) |
endswith | 检查字符串是否以某个字符串结尾,是则返回True,否则返回False | str1='hello world hello china' print(str1.endswith('china')) |
lower | 将字符串转换为小写 | str1='Hello World HELLO CHINA' print(str1.lower()) |
upper | 将字符串转换为大写 | str1='hello world hello china' print(str1.upper()) |
ljust | 返回一个原字符串左对齐,并使用空格填充至长度为width的新字符串 | str1='hello' print(str1.ljust(10)) |
rjust | 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串 | str1='hello' print(str1.rjust(10)) |
center | 返回一个原字符串居中,并使用空格填充至长度width的新字符串 | str1='hello' print(str1.center(15)) |
lstrip | 去除字符串左边空白字符 | str1=' hello' print(str1) print(str1.lstrip()) |
rstrip | 去除字符串右边空白字符 | str1='hello ' print(str1) print(str1.rstrip()) |
strip | 去除字符串两边空白字符串 | str1=' hello ' print(str1) print(str1.strip()) |
partition | 可以将字符串以str1进行分隔成三个部分,str1前,str,str1后 | str1='hello world hello china' print(str1.partition('world')) |
join | str1中每个字符串后面插入str1,构造出一个新的字符串 | str1='_' list=['hello','world','hello','china'] print(str1.join(list)) |
isspace | 如果str1中只包含空格,则返回True,否则返回False | str1='' print(str1.isspace()) |
isalnum | 如果str1所有字符都是字母或数字则返回True,否则返回False | str1='a123' print(str1.isalnum()) |
isdigit | 如果str1只包含数字则返回True,否则返回False | str1='123' print(str1.isdigit()) |
isalpha | 如果str1所有字符都是字母则返回True,否则返回False | str1='abc' print(str1.isalpha()) |
str1 = 'FishC'
print(str1.casefold()) # 将字符串的所有字符变为小写
str2 = 'AbcABCabCabcABCabc'
print(str2.count('ab', 0, 15)) # 查找子字符串出现的次数
str3 = 'I love fishc.com'
print(str3.find('fishc')) # 查找某个子字符串在该字符串中的位置
print('x'.join("Test")) # join是以字符串作为分隔符,插入到字符串中所有的字符之间
print('_'.join('FishC'))
print(' '.join(['I', 'love', 'fishc.com']))
str4 = 'I love you'
print(str4.replace('you', 'fishc.com')) # 替换指定的字符串
str5 = ' '.join(['I', 'love', 'fishc.com'])
print(str5)
print(str5.split()) # 拆分字符串
str6 = '_'.join('FishC')
print(str6.split(sep='_'))