学习python--第三天
test = "Alex" v1 = test.islower() v2 = test.lower() print(v1, v2) 输出结果: False alex
python开发IDE: pycharm、eclipse
pycharm要专业版,不要汉化

x in y 的例子:
name="denny"
if "en" in name:
print("ok")
else:
print("error")
说明:pycharm 的快捷键: 注释 CTRL+? ,再按一次就解除注释字符“#”
x not in y 的例子:
name="denny"
if "en" not in name:
print("ok")
else:
print("error")
函数
Python casefold() 方法:
是Python3.3版本之后引入的,其效果和 lower() 方法非常相似,都可以转换字符串中所有大写字符为小写。
两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
capitalize(): 字符串第一个字母大写
title(): 字符串内的所有单词的首字母大写
>>> str='huang bi quan' >>> str.capitalize() 'Huang bi quan' #第一个字母大写 >>> str.title() 'Huang Bi Quan' #所有单词的首字母大写 非字母开头的情况: >>> str='深圳luohu' >>> str.capitalize() '深圳luohu' #输出内容不变 >>> str.title() '深圳Luohu' #第一个字母大写
type():是一种函数,返回表达式的值的类型。
endswith():判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型test = "alex"
v1 = test.endswith('ex')
v2 = test.startswith('ex')
print(v1)
print(v2)
isalnum(): 方法检测字符串是否由字母和数字组成(不能有空格和其他字符如!%等等)。
str = "this2009" v=str.isalnum() print(v) str = "this is string example wow!!" v1=str.isalnum() print(v1) 输出结果: True False
format():字符串格式化
test = 'i am {name}, age {a}'
v1 = test.format(name='df',a=10)
v2 = test.format_map({"name": 'alex', "a": 19})
print(v1)
print(v2)
输出结果:
i am df, age 10
i am alex, age 19
Python find() :检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。从0开始数
test = "alexalex"
v = test.find('ex')
v1 = test.find('ex',5,7) --【5,7) 指大于等于5,小于7
v2 = test.find('ex',5,8) --【5,8) 指大于等于5,小于8
print(v)
print(v1)
print(v2)
输出结果:
2
-1
6
Python expandtabs(): 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
expandtabs()方法语法:
参数
- tabsize -- 指定转换字符串中的 tab 符号('\t')转为空格的字符数。
返回值
. 该方法返回字符串中的 tab 符号('\t')转为空格后生成的新字符串。
实际的应用还有排列整齐的作用
test = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123" v = test.expandtabs(20) print(v) 输出结果如下: username email password laiying ying@q.com 123 laiying ying@q.com 123 laiying ying@q.com 123
Python isalpha(): 方法检测字符串是否是由字母和汉字组成(不能有数字和其他特殊字符,有的话输出False)。
test="dfeit时运" v=test.isalpha() print(v) 输出结果: True
Python3 isidentifier() 方法用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法。(标识符:字母、数字、下划线开头的)
输出结果是:True \False
isdecimal():
True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字 Error: byte数字(单字节) --十进制数字
isdigit():
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无 --十进制数字、特殊的数字②
isnumeric():
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节)--十进制数字、特殊的数字②、汉字数字如:二
isprintable():功能:判断字符串中所有字符是否都属于可见字符
a = "\tPuppy"
a.isprintable()
返回结果:False
a = "\nPuppy"
a.isprintable()
返回结果:False
name = 'swhthaitun'
name.isprintable()
返回结果:True
isspace(): 功能:判断字符串是否全部是空格
name = 'swhthaitun'
name.isspace()
返回结果:False
Li = ' '
Li.isspace()
返回结果:True
A= 'I Am Policeman '
A.isspace()
返回结果:False
istitle() 功能:判断字符串是否适合当作标题(其实就是每个单词首字母大写)
a = "a puppy"
b = "Puppy"
a.istitle()
返回结果:False
b.istitle()
返回结果:True
title()功能:字符串内的所有单词的首字母大写
capitalize() 功能:字符串第一个字母大写
join():功能: 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
--将字符串中的每一个元素按照指定分隔符进行拼接
test = "你是风儿我是沙" print(test) t = ' ' v = t.join(test) print(v) 输出结果: 你是风儿我是沙 你 是 风 儿 我 是 沙 test = "你是风儿我是沙" print(test) v = ' '.join(test) print(v) 输出结果: 你是风儿我是沙 你 是 风 儿 我 是 沙
ljust() 功能: 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。
如果指定的长度小于原字符串的长度则返回原字符串。
test="denny" v=test.ljust(20,"*") print(v) 输出结果: denny***************
rjust() 功能:方法返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。
如果指定的长度小于字符串的长度则返回原字符串。
test="denny" v=test.rjust(20,"*") print(v) 输出结果: ***************denny
center() 功能:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
默认填充字符为空格。
test="denny" v=test.center(20,"*") print(v) 输出结果: *******denny******** 说明:*******denny********总共是20个字节
lower() 方法转换字符串中所有大写字符为小写。
islower() 方法检测字符串是否由小写字母组成。
test = "Alex" v1 = test.islower() v2 = test.lower() print(v1, v2) 输出结果: False alex
isupper() 方法检测字符串中所有的字母是否都为大写。
upper() 方法将字符串中的小写字母转为大写字母。
test = "Alex" v1 = test.isupper() v2 = test.upper() print(v1, v2) 输出结果: False ALEX
lstrip() 方法用于截掉字符串左边的空格(还可以去除\t \n)或指定字符。
lstrip()方法语法:str.lstrip([chars])
str = " this is string example....wow!!! "
v1=str.lstrip()
print(v1)
strr = "88888888this is string example....wow!!!8888888"
v2= strr.lstrip('8')
print(v2)
输出结果:
this is string example....wow!!!
this is string example....wow!!!8888888
rstrip() 删除 string 字符串末尾的左边的空格(还可以去除\t \n)或指定字符。
rstrip()方法语法:str.rstrip([chars]):chars -- 指定删除的字符(默认为空格)
返回值 :返回删除 string 字符串末尾的指定字符后生成的新字符串。
str = " this is string example....wow!!! "
print (str.rstrip())
str = "*****this is string example....wow!!!*****"
print (str.rstrip('*'))
输出结果:
this is string example....wow!!!
*****this is string example....wow!!!
strip() 方法用于移除字符串头尾的空格(还可以去除\t \n)或指定字符。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
strip()方法语法:str.strip([chars]);chars -- 移除字符串头尾指定的字符序列。
返回值:返回移除字符串头尾指定的字符生成的新字符串。
str1 = "00000003210Runoob01230000000"
v1= str1.strip( '0' )
print(v1)
str2= " Runoob "
v2 =str2.strip()
print(v2)
输出结果
3210Runoob0123
Runoob
Python中strip()、lstrip()、rstrip()用法详解
Python中有三个去除头尾字符、空白符的函数,它们依次为:
strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
注意:这些函数都只会删除头和尾的字符,中间的不会删除。
用法分别为:
string.strip([chars])
string.lstrip([chars])
string.rstrip([chars])
参数chars是可选的,当chars为空,默认删除string头尾的空白符(包括\n、\r、\t、' ')
当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。
它返回的是去除头尾字符(或空白符)的string副本,string本身不会发生改变。
举例说明如下:
1. 当chars为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
>>> str = ' ab cd '
>>> str
' ab cd '
>>> str.strip() #删除头尾空格
'ab cd'
>>> str.lstrip() #删除开头空格
'ab cd '
>>> str.rstrip() #删除结尾空格
' ab cd'
2.当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。
>>> str2 = '1a2b12c21'
>>> str2.strip('12') #删除头尾的1和2
'a2b12c'
>>> str2.lstrip('12') #删除开头的1和2
'a2b12c21'
>>> str2.rstrip('12') #删除结尾的1和2
'1a2b12c'
maketrans() 方法用于给 translate() 方法创建字符映射转换表。
可以只接受一个参数,此时这个参数是个字典类型(暂不研究这种情况)。
对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
在Python3中可以有第三个参数,表示要删除的字符,也是字符串。
一般 maketrans() 方法需要配合 translate() 方法一起使用。
注:Python3.4 以后已经不需要从外部 string 模块中来调用 maketrans() 方法了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()。
maketrans() 方法语法:
Python3中:
|
1
|
str.maketrans(intab,outtab[,delchars]) |
Python2中:
|
1
2
|
import stringstring.maketrans(intab,outtab) |
- ntab -- 需要转换的字符组成的字符串。
- outtab -- 转换的目标字符组成的字符串。
- delchars -- 可选参数,表示要删除的字符组成的字符串。
返回值:返回一个字符映射转换表供 translate() 方法调用。
trantab1 = str.maketrans(intab,outtab) # 创建字符映射转换表 trantab2 = str.maketrans(intab,outtab,deltab) #创建字符映射转换表,并删除指定字符 test = "this is string example....wow!!!" print(test.translate(trantab1)) print(test.translate(trantab2)) 输出结果: th3s 3s str3ng 2x1mpl2....w4w!!! 3s 3s sr3ng 2x1mpl2....4!!!
translate() :方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。
translate()方法语法:str.translate(table[, deletechars]);
参数:
- table -- 翻译表,翻译表是通过maketrans方法转换而来。
- deletechars -- 字符串中要过滤的字符列表。
返回值:返回翻译后的字符串。
intab = "aeiou" outtab = "12345" str = "this is string example....wow!!!" trantab =str.maketrans(intab, outtab) test=str.translate(trantab) print(test) 输出结果: th3s 3s str3ng 2x1mpl2....w4w!!!
intab = "aeiou" outtab = "12345" deltab = "thw" trantab1 = str.maketrans(intab,outtab) # 创建字符映射转换表 trantab2 = str.maketrans(intab,outtab,deltab) #创建字符映射转换表,并删除指定字符 test = "this is string example....wow!!!" print(test.translate(trantab1)) print(test.translate(trantab2)) 输出结果: th3s 3s str3ng 2x1mpl2....w4w!!! 3s 3s sr3ng 2x1mpl2....4!!!
partition() 方法用来根据指定的分隔符将字符串进行分割。--分割为三部分
--如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。partition() 方法是在2.5版中新增的。
partition()方法语法:str.partition(str)
参数:str : 指定的分隔符。
返回值:返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
test = "testasdsddfg"
v = test.partition('s')
print(v)
输出结果:
('te', 's', 'tasdsddfg')
————————————————
str = "www.runoob.com"
v= str.partition(".")
print(v)
输出结果:
('www', '.', 'runoob.com')
rpartition() 方法类似于 partition() 方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。。
如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
test = "testasdsddfg"
v = test.rpartition('s')
print(v)
输出结果:
('testasd', 's', 'ddfg')
————————————————————————
str = "www.runoob.com"
v= str.rpartition(".")
print(v)
输出结果:
('www.runoob', '.', 'com')
split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
split() 方法语法:str.split(str="", num=string.count(str))
参数:
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数。默认为 -1, 即分隔所有。
返回值:返回分割后的字符串列表。注:不返回分隔字符
test = "testasdsddfg"
v = test.split('s')
print(v)
输出结果:
['te', 'ta', 'd', 'ddfg']
——————————————————————————
test = "testasdsddfg"
v = test.split('s',2)
print(v)
输出结果:
['te', 'ta', 'dsddfg']
——————————————————————————
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
v=str.split( ); # 以空格为分隔符,包含 \n
print(v)
v2= str.split(' ', 1 ); # 以空格为分隔符,分隔成两个
print(v2)
输出结果:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
rsplit() 方法通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等。类似于 split() 方法,只不过是从字符串最后面开始分割。
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
v=str.rsplit( ); # 以空格为分隔符,包含 \n
print(v)
v1=str.split( ); # 以空格为分隔符,包含 \n
print(v1)
v2= str.rsplit(' ', 1 ); # 以空格为分隔符,分隔成两个
print(v2)
输出结果:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef \nLine2-abc', '\nLine4-abcd']
splitlines() :按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
splitlines()方法语法:str.splitlines([keepends])
参数:keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
返回值:返回一个包含各行作为元素的列表。
行界符 描述
\n Line Feed 换行
\r Carriage Return 回车
\r\n Carriage Return + Line Feed 回车+换行
\v or \x0b Line Tabulation
\f or \x0c Form Feed 换页
\x1c File Separator 文件分隔符
\x1d Group Separator 组分隔符
\x1e Record Separator 记录分隔符号
\x85 Next Line (C1 Control Code)
\u2028 Line Separator 行分隔符
\u2029 Paragraph Separator 段落分隔符号
str1 = 'ab c\n\nde fg\rkl\r\n' print str1.splitlines(); str2 = 'ab c\n\nde fg\rkl\r\n' print str2.splitlines(True) 输出结果: ['ab c', '', 'de fg', 'kl'] ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
startswith()方法语法:str.startswith(str, beg=0,end=len(string));
参数
- str -- 检测的字符串。
- strbeg -- 可选参数用于设置字符串检测的起始位置。
- strend -- 可选参数用于设置字符串检测的结束位置。
返回值:如果检测到字符串则返回True,否则返回False。
str = "this is string example....wow!!!" v1= str.startswith( 'this' ) v2= str.startswith( 'is', 2, 4 ) v3=str.startswith( 'this', 0, 4 ) v4=str.startswith( 'this', 1, 4 ) print(v1) print(v2) print(v3) print(v4) 输出结果: True True True False
endswith()函数
此函数判断一个文本是否以某个或几个字符结束,结果以True或者False返回。
endswith()方法语法:str.endswith(suffix[, start[, end]])
参数:
- suffix -- 该参数可以是一个字符串或者是一个元素。
- start -- 字符串中的开始位置。
- end -- 字符中结束位置。
- 如果存在参数 beg 和 end,则在指定范围内检查,否则在整个字符串中检查
返回值:如果字符串含有指定的后缀返回True,否则返回False。
s = 'hello good boy doiido'
v1=s.endswith('o')
v2=s.endswith('ido')
v3=s.endswith('do',4)
v4= s.endswith('do',4,15)
print(v1)
print(v2)
print(v3)
print(v4)
输出结果:
True
True
True
False
swapcase() 方法用于对字符串的大小写字母进行转换。--将大写转换成小写,小写转换成大写
swapcase()方法语法:str.swapcase();
返回值:返回大小写字母转换后生成的新字符串。
test = "aLex" v = test.swapcase() print(v) 输出结果: AlEX
isidentifier() :方法用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法。
如果字符串是有效的 Python 标识符返回 True,否则返回 False。
a = "def" v = a.isidentifier() print(v) 输出结果 True
replace() :方法把字符串中的 old(旧字符串) 替换成 new(新字符串),
如果指定第三个参数max,则替换不超过 max 次。
replace()方法语法:str.replace(old, new[, max])
参数:
- old -- 将被替换的子字符串。
- new -- 新字符串,用于替换old子字符串。
- max -- 可选字符串, 替换不超过 max 次
返回值:返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
test = "alexalexalex"
v = test.replace("ex",'bbb')
print(v)
v = test.replace("ex",'bbb',2)
print(v)
输出结果
albbbalbbbalbbb
albbbalbbbalex

浙公网安备 33010602011771号