语法
expandtabs()方法语法:
str.expandtabs(tabsize=8)
将字符串当中所有的字母大小写互换
[terry笔记]Python字符串,terrypython
如下学习python的字符串用法。
print(dir(str))
[‘__add__’, ‘__class__’, ‘__contains__’, ‘__delattr__’,
‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’,
‘__ge__’, ‘__getattribute__’, ‘__getitem__’,
‘__getnewargs__’, ‘__gt__’, ‘__hash__’, ‘__init__’,
‘__iter__’, ‘__le__’, ‘__len__’, ‘__lt__’,
‘__mod__’, ‘__mul__’, ‘__ne__’, ‘__new__’,
‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__rmod__’,
‘__rmul__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’,
‘__subclasshook__’, ‘capitalize’, ‘casefold’, ‘center’, ‘count’,
‘encode’, ‘endswith’, ‘expandtabs’, ‘find’, ‘format’, ‘format_map’,
‘index’, ‘isalnum’, ‘isalpha’, ‘isdecimal’, ‘isdigit’, ‘isidentifier’,
‘islower’, ‘isnumeric’, ‘isprintable’, ‘isspace’, ‘istitle’, ‘isupper’,
‘join’, ‘ljust’, ‘lower’, ‘lstrip’, ‘maketrans’, ‘partition’, ‘replace’,
‘rfind’, ‘rindex’, ‘rjust’, ‘rpartition’, ‘rsplit’, ‘rstrip’, ‘split’,
‘splitlines’, ‘startswith’, ‘strip’, ‘swapcase’, ‘title’, ‘translate’,
‘upper’, ‘zfill’]
如上是字符串的所有方法,一个一个看,共44个
1.返回第一个字母大写
capitalize(…)
capitalize() -> string
1 2 3 4 | >>>a = 'hello world' >>> b = a.capitalize() >>> print (b) Hello world |
2.按指定长度填充特定字符
center(…)
S.center(width[, fillchar]) -> string
1 2 3 4 5 6 7 | >>> a = 'linux' >>> print a.center( 7 , 'h' ) hlinuxh >>> print a.center( 8 , 'h' ) hlinuxhh >>> print a.center( 9 , 'h' ) hhlinuxhh |
3.查找某字符串出现的次数
count(…)
S.count(sub[, start[, end]]) -> int
1 2 3 4 5 6 7 8 9 | >>> a = "this is my dog, i love this dog and it's a good dog!" >>> print a.count( 'dog' ) 3 >>> print a.count( 'dog' , 15 ) 2 >>> print a.count( 'dog' , 15 , 30 ) 0 >>> print a.count( 'dog' , 15 , 32 ) 1 |
4.以指定的编码格式解码字符串。默认编码为字符串编码(适合python2中处理中文)
decode(…)
S.decode([encoding[,errors]]) ->object
1 2 3 | b = 'strid' >>> b.decode( 'utf-8' ) u 'strid' |
5.用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数”start”与”end”为检索字符串的开始与结束位置
endswith(…)
S.endswith(suffix[,start[, end]]) ->bool
1 2 3 4 5 6 7 | >>> shaw = 'I am shaw,what's your name ?' >>> shaw.endswith( '?' ) True >>> shaw.endswith( 'w' , 7 , 9 ) True >>> shaw.endswith( 'w' , 7 , 8 ) False |
6.把字符串中的 tab 符号(‘t’)转为空格,tab 符号(‘t’)默认的空格数是8,tabsize — 指定转换字符串中的 tab 符号(‘t’)转为空格的字符数。
expandtabs(…)
S.expandtabs([tabsize])-> string
1 2 3 4 5 6 7 | >>> info = 'today is a good dtay' >>> print info.expandtabs() today is a good d ay >>> print info.expandtabs( 4 ) # 把tab装换成4个空格 today is a good d ay >>> printinfo.expandtabs( 1 ) today is a good d ay # 把tab装换成1个空格 |
7.检测字符串中是否包含子字符串 str ,如果指定 beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,如果包含子字符串,则返回开始的索引值,否则返回-1。
find(…)
S.find(sub [,start [,end]])-> int
1 2 3 4 5 6 7 | >>> a = 'stivenwang' >>> a.find( 'w' ) 6 >>> a.find( 'w' , 9 ) - 1 >>> a.find( 'w' , 9 , 11 ) - 1 |
8.格式换字符串输出(方法与%相似,但可以指定顺序)
format(…)
S.format(*args, **kwargs)-> string
1 2 3 4 5 6 7 8 | >>> name = 'StivenWang' >>> fruit = 'apple' >>> print 'my name is {},I like {}' . format (name,fruit) my name is StivenWang,I like apple >>> print 'my name is {1},I like {0}' . format (fruit,name) my name is StivenWang,I like apple >>> print 'my name is {mingzi},I like{shuiguo}' . format (shuiguo = fruit,mingzi = name) my name is StivenWang,I like apple |
9.检测字符串string中是否包含子字符串 str ,如果存在,则返回str在string中的索引值,如果指定beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常(ValueError: substring not found)。
index(…)
S.index(sub [,start [,end]])-> int
1 2 3 4 5 6 7 8 | >>> str1 = "this is string example....wow!!!" >>> str2 = "exam" >>> print str1.index(str2) 15 >>> print str1.index(str2, 20 ) Traceback (most recent call last): File "<input>" ,line 1 , in <module> ValueError: substringnot found报错 |
10.检测字符串是否由字母或数字组成。
isalnum(…)
S.isalnum() -> bool
1 2 3 4 5 6 7 8 9 10 11 12 | >>> a = '123' >>> a.isalnum() True >>> b = 'shaw' >>> b.isalnum() True >>> c = 'shaw123' >>> c.isalnum() True >>> d = 'th 123' >>> d.isalnum() False |
11.检测字符串是否只由字母组成
isalpha(…)
S.isalpha() -> bool
1 2 3 4 5 6 7 8 9 10 11 12 | >> a = '123' >>> a.isalpha() False >>> b = '123shaw' >>> b.isalpha() False >>> c = 'shaw' >>> c.isalpha() True >>> d = 'sha w' >>> d.isalpha() False |
12.检测字符串是否只由数字组成。
isdigit(…)
S.isdigit() -> bool
1 2 3 4 5 6 7 8 9 | >>> a = '123' >>> a.isdigit() True >>> b = 'shaw' >>> b.isdigit() False >>> c = '123shaw' >>> c.isdigit() False |
13.检测字符串是否由小写字母组成。
islower(…)
云顶娱乐平台:python数字、字符串。 S.islower() -> bool
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> a = 'shaw' >>> a.islower() True >>> b = '123' >>> a.islower() True >>> c = '123shaw' >>> c.islower() True >>> d = 'SHAW' >>> d.islower() False >>> e = '123SHAW' >>> e.islower() False |
14.检测字符串是否只由空格组成。
isspace(…)
S.isspace() -> bool
1 2 3 4 5 6 7 8 9 | >>> a = ' ' >>> a.isspace() True >>> a = '123' >>> a.isspace() False >>> a = 'shaw' >>> a.isspace() False |
15.检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
istitle(…)
S.istitle() -> bool
1 2 3 4 5 6 7 8 9 | >>> a = 'Shaw' >>> a.istitle() True >>> a = 'Shaw123' >>> a.istitle() True >>> a = '123' >>> a.istitle() False |
16.检测字符串中所有的字母是否都为大写
isupper(…)
S.isupper() -> bool
1 2 3 4 5 6 7 8 9 10 11 12 | >>> a = '123' >>> a.isupper() False >>> a = 'Shaw' >>> a.isupper() False >>> a = 'Shaw123' >>> a.isupper() False >>> a = 'SHAW123' >>> a.isupper() True |
17.用于将序列中的元素以指定的字符连接生成一个新的字符串。
join(…)
S.join(iterable) ->string
1 2 3 4 | >>> a = '-' >>> b = 'shaw' >>> print a.join(b) s - h - a - w |
18.返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
ljust(…)
S.ljust(width[, fillchar])-> string
width — 指定字符串长度
fillchar — 填充字符,默认为空格
1 2 3 4 5 | >>> s = 'shaw' >>> s.ljust( 10 ) 'shaw ' >>> s.ljust( 10 , '8' ) 'shaw888888' |
19.转换字符串中所有大写字符为小写。
Lower(…)
S.lower() -> string
1 2 3 4 5 6 | >>> s = 'PYTHON' >>> s.lower() 'python' >>> s = 'PYTHON123' >>> s.lower() 'python123' |
20.用于截掉字符串左边的空格或指定字符。
lstrip(…)
S.lstrip([chars]) ->string or unicode
1 2 3 4 5 6 | >>> s = '%%%shaw' >>> s.lstrip( '%' ) 'shaw' >>> s = ' shaw' >>> s.lstrip() 'shaw' |
21.根据指定的分隔符将字符串进行分割(返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串)
partition(…)
S.partition(sep) ->(head, sep, tail)
1 2 3 | >>> S = 'are you know:lilin is lowser' >>> S.partition( 'lilin' ) ( 'are you know:' , 'lilin' , ' is lowser' ) |
22.把字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
replace(…)
S.replace(old, new[,count]) -> string
1 2 3 | >>> S = 'shaw' >>> S.replace( 'sh' , 'LI' ) 'LIaw' |
23.返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
rfind(…)
S.rfind(sub [,start[,end]]) -> int
str — 查找的字符串
beg — 开始查找的位置,默认为0
end — 结束查找位置,默认为字符串的长度。
1 2 3 4 5 | >>> s = 'lilin is good li lao ban' >>> s.rfind( 'li' ) 14 >>> s.rfind( 'li' , 0 , 8 ) 2 |
24.返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。
rindex(…)
S.rindex(sub [,start[,end]]) -> int
语法:
str.rindex(str,beg=0 end=len(string))
1 2 3 4 5 6 7 8 9 | >>> s = 'my name is shaw' >>> s.rindex( 's' ) 11 >>> s.rindex( 's' , 5 , 10 ) 9 >>> s.rindex( 's' , 2 , 8 ) Traceback (most recent call last): File "<input>" ,line 1 , in <module> ValueError: substring not found |
25.返回的原/新字符串右对齐,且默认使用空格填充至指定长度(width)的新字符串。如果指定的长度(width)小于原字符串的长度则返回原字符串
rjust(…)
S.rjust(width[, fillchar])-> string
语法:
str.rjust(width[,fillchar])
width — 指定填充指定字符后新字符串的总长度.
fillchar– 要填充的字符,默认为空格。
1 2 3 4 5 6 7 | >>> s = 'sch' >>> s.rjust( 20 ) ' sch' >>> s.rjust( 20 , '0' ) '00000000000000000sch' >>> s.rjust( 20 , 'H' ) 'HHHHHHHHHHHHHHHHHsch' |
26.删除 string 字符串末尾的指定字符(默认为空格).
rstrip(…)
S.rstrip([chars]) ->string or unicode
语法:
str.rstrip([chars])
1 2 3 | >>> s = 'shawn' >>> s.rstrip( 'n' ) 'shaw' |
27.通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔 num 个子字符串
split(…)
S.split([sep [,maxsplit]])-> list ofstrings
语法:
str.split(str=””,num=string.count(str)).
1 2 3 4 5 | >>> s = 'shawnlinuxnmac' >>> s.split( 'n' ) [ 'shaw' , 'linux' , 'mac' ] >>> s.split( 'n' , 1 ) [ 'shaw' , 'linuxnmac' ] |
28.按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
splitlines(…)
S.splitlines(keepends=False)-> list ofstrings
语法:
str.splitlines( num=string.count(‘n’))
num — 分割行的次数。
1 2 3 4 5 6 | >>> s = 'what's your name?n my name is shawn how old areyou?' >>> s.splitlines() [ "what's your name?" , ' my name is shaw ', ' how old areyou?'] >>> s.splitlines( 1 ) [ "what's your name?n" , ' my name is shawn ', ' how old areyou?'] >>> s.splitlines( 3 ) |
29.用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end指定值,则在指定范围内检查。
startswith(…)
S.startswith(prefix[,start[, end]]) ->bool
语法:
str.startswith(str,beg=0,end=len(string))
str — 检测的字符串。
strbeg — 可选参数用于设置字符串检测的起始位置。
strend — 可选参数用于设置字符串检测的结束位置。
1 2 3 4 5 | >>> s = 'my name is shaw' >>> s.startswith( 'my' ) True >>> s.startswith( 'my' , 10 , 15 ) False |
30.用于移除字符串头尾指定的字符(默认为空格)。
strip(…)
S.strip([chars]) ->string or unicode
1 2 3 | >>> s = 'my name is sam' >>> s.strip( 'm' ) 'y name is sa' |
31.用于对字符串的大小写字母进行转换(小写转大写,大写转小写)
swapcase(…)
S.swapcase() -> string
1 2 3 4 5 6 | >>> s = 'stiven' >>> s.swapcase() 'STIVEN' >>> s = 'SHAW' >>> s.swapcase() 'shaw' |
32.返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
title(…)
S.title() -> string
1 2 3 | >>> s = 'my name is shaw' >>> s.title() 'My Name Is Shaw' |
33.根据参数table给出的表(包含 256 个字符)转换字符串的字符, 并返回翻译后的字符串。要过滤掉的字符放到del 参数中
translate(…)
S.translate(table [,deletechars])->string
语法:
str.translate(table[, deletechars])
table — 翻译表,翻译表是通过maketrans方法转换而来。
deletechars — 字符串中要过滤的字符列表。
1 2 3 4 5 6 7 8 9 | >>> from string import maketrans suchas = maketrans( 'sm' , '@$' ) >>> s = 'this is sam's dog' >>> s "this is sam's dog" >>> s.translate(suchas) "[email protected] [email protected] @a$'@ dog" >>> s.translate(suchas, 'dog' ) 去除d,o,g字符 "[email protected] [email protected] @a$'@ " |
34.将字符串中的小写字母转为大写字母
upper(…)
S.upper() -> string
1 2 3 4 5 6 7 8 9 | >>> s = 'sam' >>> s.upper() 'SAM' >>> s = '23sam' >>> s.upper() '23SAM' >>> s = '23s am' >>> s.upper() '23S AM' |
如下学习python的字符串用法。 print(dir(str)) [‘__add__’,
‘__class__’, ‘__contains__’, ‘__delattr__’, ‘__dir__’,
‘__doc__’, ‘__…
实例
以下实例展示了expandtabs()方法的实例:
#!/usr/bin/python3
str = "this iststring example....wow!!!"
print ("原始字符串: " + str)
print ("替换 \t 符号: " + str.expandtabs())
print ("使用16个空格替换 \t 符号: " + str.expandtabs(16))
以上实例输出结果如下:
原始字符串: this is string example....wow!!!
替换 t 符号: this is string example....wow!!!
使用16个空格替换 t 符号: this is string example....wow!!!
参数
- tabsize — 指定转换字符串中的 tab 符号(‘t’)转为空格的字符数。
w |
h |
i |
l |
e |
0 |
1 |
2 |
3 |
4 |
返回值
该方法返回字符串中的 tab 符号(‘t’)转为空格后生成的新字符串。
%
描述
expandtabs() 方法把字符串中的 tab 符号(‘t’)转为空格,tab
符号(‘t’)默认的空格数是 8。
在这个推荐一个强大的python工具 ipython,安装python环境后 pip install
ipython 以下是我用此软件查的关键字
1、标示符由字母、下划线和数字组成,且数字不能开头
字符串的替换 |
replace |
从左到右替换指定的元素,可以指定替换的个数,默认全部替换 |
取商,5//2得2;返回商的整数部分 9//2 输出结果 4 。
将字串符当中的单词首字母大写,单词以非字母划分
myText (小驼峰式命名法)
让字符串在指定的长度右齐,可以指定填充内容,默认以空格填充
In [1]: import keyword
乘
查找,返回从右第一个指定字符的索引,找不到报错
将字符串当中所有的字母转换为小写
x除以y b / a 输出结果 2
capitalize
MyText (大驼峰式命名法)
Out[10]: ‘ hello python ‘
不可以使用关键字命名:
python数字类型运算符:
title
zfill
按照顺序,将后面的参数传递给前面的大括号
默认去除两边的空格,去除内容可以指定
取整除
swapcase
my_test 个人喜欢这种命名方法
/
*
字符串的修饰
In [13]: my_test.upper()
Out[13]: ‘HELLO PYTHON’
expandtabs
两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 10
描述
字符串截取:字符串[start:end],得到对应索引范围的元素,该范围包含起始端,不包含结尾端,默认截取的方向是从左往右的;
将字符串当中所有的字母转换为大写
In [10]: my_test.center(20)
取余
让字符串在指定的长度左齐,可以指定填充内容,默认以空格填充
运算符
python字符串的方法:
+
**
count
步长截取:字符串[start:end:step] 按照step步长进行隔取;
//
返回x的y次幂 a**b 为5的2次方, 输出结果 25
python字符串的索引:
center
加
实例
默认去除右边的空格,去除内容可以指定
把字符串中的 tab 符号(‘t’)转为空格,tab 符号(‘t’)默认的空格数是 8
注意:选取的字符包头不包尾
查找,返回从右第一个指定字符的索引,找不到返回-1
strip
除
In [云顶娱乐平台,7]: my_test = “hello python”
返回除法的余数 a % b 输出结果 1
将字符串填充到指定的长度,不足地方用0从左开始补充
比如字符串‘while’,可以按照下图理解其下标概念,索引号从0开始;
减
12mytest 错
查找,返回从左第一个指定字符的索引,找不到报错
字符串的变形
幂
rfind
In [8]: my_test.count(“o”)
Out[8]: 2
字符串的查找
index
format
ljust
find
Out[9]: ‘wello pytwon’
让字符串在指定的长度居中,如果不能居中左短右长,可以指定填充内容,默认以空格填充
In [9]: my_test.replace(“h”,”w”)
默认去除左边的空格,去除内容可以指定
查找,返回从左第一个指定字符的索引,找不到返回-1
upper
rjust
计数功能,返回自定字符在字符串当中的个数
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’,
‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’,
‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’,
‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’,
‘yield’]
得到负数或是一个数减去另一个数 a – b 输出结果 3
mytest 对
rindex
只有字符串的首字母大写
–
rstrip
In [2]: keyword.kwlist
lstrip
lower
两个对象相加 a + b 输出结果 7
切片的语法:[起始:结束:步长]