이 글의 예시는 참고용으로 Python 문자열의 연산 방식을 공유합니다.
1. 공백 제거
str.strip():문자열 양쪽에 지정된 문자를 삭제하고, 괄호 안에 지정된 문자를 씁니다. 기본값은 공백입니다
>>> a=' hello ' >>> b=a.strip() >>> print(b) hello
str.lstrip(): 문자열 왼쪽의 지정된 문자를 삭제하고, 괄호 안에 지정된 문자를 씁니다. 기본값 is space
>>> a=' hello ' >>> b=a.lstrip() >>> print(b) hello #右边空格可能看的不是很明显
str.rstrip(): 문자열 오른쪽에 지정된 문자를 삭제합니다. , 기본값은 공백
>>> a=' hello ' >>> b=a.rstrip() >>> print(b) hello
2. 문자열을 복사합니다.
>>> a='hello world' >>> b=a >>> print(a,b) hello world hello world
3. 문자열 연결
+:连接2个字符串 >>> a='hello ' >>> b='world' >>> print(a+b) hello world 注:此方法又称为 "万恶的加号",因为使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去。如果是n个字符串相连 那么会开辟n-1次内存,是非常耗费资源的。 str.join:连接2个字符串,可指定连接符号(关于join,读者可以自己去查看一些相关资料) >>> a='hello ' >>> b='####' >>> a.join(b) '#hello #hello #hello #'
4. 문자열
#str.index 和str.find 功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。一般用find!=-1或者find>-1来作为判断条件。 str.index:检测字符串中是否包含子字符串str,可指定范围 a='hello world' >>> a.index('l') 2 >>> a.index('x') Traceback (most recent call last): File "<pyshell#40>", line 1, in <module> a.index('x') ValueError: substring not found str.find:检测字符串中是否包含子字符串str,可指定范围 >>> a='hello world' >>> a.find('l') 2 >>> a.find('x') -1
5. 문자열 비교
str.cmp: 두 개체를 비교하고 결과에 따라 정수를 반환합니다. X#Python3에는 더 이상 이 메서드가 없습니다.
cmp() 함수는 사라진 것으로 처리되어야 하며 __cmp__() 특수 메서드는 더 이상 정렬 __eq__에 사용되지 않습니다. ()를 __hash__()로 사용하고 필요에 따라 기타 풍부한 비교를 수행합니다. (cmp() 기능이 정말로 필요한 경우 cmp( a에 해당하는 표현식 (a > b) - (a < b)를 사용할 수 있습니다. , b).)
일반적인 개념은 cmp() 함수에 "left"가 있다는 것입니다. cmp() 함수가 정말로 필요한 경우 (a > b) - (a < b) 표현식을 사용할 수 있습니다. ) 대신 cmp(a,b)
>>> a=100 >>> b=80 >>> cmp(a,b) 1
6. 지정된 문자열을 포함할지 여부
in |not in >>> a='hello world' >>> 'hello' in a True >>> '123' not in a True
7. 문자열 길이
str.len >>> a='hello world' >>> print(len(a)) 11
8 .문자열의 대소문자 변환
S.lower() #转换为小写 >>> a='Hello World' >>> print(a.lower()) hello world S.upper() #转换为大写 >>> a='Hello World' >>> print(a.upper()) HELLO WORLD S.swapcase() #大小写互换 >>> a='Hello World' >>> print(a.swapcase()) hELLO wORLD S.capitalize() #首字母大写 >>> a='Hello World' >>> print(a.capitalize()) Hello world
9. 문자열을 가운데 위치에 넣어 길이를 지정합니다. 및 양쪽에 문자 배치
str.center() >>> a='hello world' >>> print(a.center(40,'*')) **************hello world***************
10. 문자열 통계
>>> a='hello world' >>> print(a.count('l')) 3
11. 문자열 테스트 및 판단 기능은 문자열 모듈에서 사용할 수 없습니다.
S.startswith(prefix[,start[,end]]) #是否以prefix开头 S.endswith(suffix[,start[,end]]) #以suffix结尾 S.isalnum() #是否全是字母和数字,并至少有一个字符 S.isalpha() #是否全是字母,并至少有一个字符 S.isdigit() #是否全是数字,并至少有一个字符 S.isspace() #是否全是空白字符,并至少有一个字符 S.islower() #S中的字母是否全是小写 S.isupper() #S中的字母是否便是大写 S.istitle() #S是否是首字母大写的
12. 스트링 슬라이싱
str = '0123456789′ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 print str[:-3] #截取从头开始到倒数第三个字符之前 print str[2] #截取第三个字符 print str[-1] #截取倒数第一个字符 print str[::-1] #创造一个与原字符串顺序相反的字符串 print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符 print str[-3:] #截取倒数第三位到结尾 print str[:-5:-3] #逆序截取,截取倒数第五位数与倒数第三位数之间