python 字符串

import os
#字符串
test = 'alex'
#capitalize() ---首字母大写
print(test.capitalize())

#lower() ---字母转换为小写
test1 = 'Alex'
print(test1.lower())

#center() ---返回一个长度为width,两边用fillchar(单字符)填充
# 的字符串,即字符串str居中,两边用fillchar填充。若字符串的长
# 度大于width,则直接返回字符串str
print(test.center(10))
print(test.center(10,'#'))

#count() ---计算字符在字符串中出行的次数,区分大小写
l = 'eileen'
l1 = 'eileeneileeneileen'
print(l.count('e'))
print(l1.count('eileen'))
print(l1.count('eileen',5))#从第5个位置开始

#endwith() ---以什么结尾
print(test.endswith('ex'))
#startwith() ---以什么开始
print(test.startswith('ex'))

#find() ---Python find() 方法检测字符串中是否包含子字符串
# str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是
# 否包含在指定范围内,如果包含子字符串返回开始的索引值,否则
# 返回-1
l2 = 'today is sunday'
print(l2.find('sunday'))

#format() ---将一个字符串中的占位符{},替换为指定的值
test2 = 'i am {x},today is {y}'
v = test2.format(x ='alex',y = 'sunday')
print(v)

#若占位符为数字,则按照顺序进行替换
test3 = 'i am {0},today is {1}'
v1 = test3.format('alex','sunday')
print(v1)

#isalnum() ---方法检测字符串是否由字母和数字组成
print(test.isalnum())
print(test3.isalnum())

#expandtabs() ---把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8
test4 = 'name\tsex\tage\n小明\t\t18\n小花\t\t12\n小莉\t\t15\n小强\t\t16\n'
print(test4.expandtabs(10))

#islapha() ---检查字符串是否只包含字母和中文字符
test5 = 'slkdjf你好'
print(test5.isalpha())
print(test4.isalpha())
print(test.isalpha())

#isdecimal() ---判断是否为数字,不包含特殊数字,例如⑶⑶⑶
#isdigit() ---判断是否为数字,包含特殊数字
test6 = '①⑶⑶⑶①'
print(test6.isdigit()) #True
print(test6.isdecimal()) #False

#isidentifier() ---如果字符串是有效标识符,则 isidentifier() 方法返回 True,否则返回 False
#如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标
# 识符不能以数字开头或包含任何空格。
print('---------------')
test7 = '2skldfG'
test8 = 'sjld slkd3423'
print(test8.isidentifier())
print(test7.isidentifier())
print(test6.isidentifier())
print(test.isidentifier())
print(test5.isidentifier())

#islower() ---字符串是否为小写
print(test5.islower())
print(test7.islower())

#isnumeric() ---方法检测字符串是否只由数字组成
test9 = '12'
print(test7.isnumeric())
print(test9.isnumeric())

#isprintable() ---判断字符串中是否都可打印,例如:换行符、回车则不可打印
print(test8.isprintable())
print(test4.isprintable())

#isspace() ---方法检测字符串是否只由空格组成
test10 = ' '
print(test10.isspace())
print(test.isspace())

#istitle() ---方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
print(test.istitle())
print(test1.istitle())
print(test7.istitle())

#isupper() ---方法检测字符串中所有的字母是否都为大写
l3 ='EILEEN'
print(test1.isupper())
print(l3.isupper())

#join() ---方法用于将序列中的元素以指定的字符连接生成一个新的字符串
str = '+'
print(str.join(test))
list = ['1','2','3','4','5']
print(''.join(list))
print('+'.join(list))
seq = {'xiaoli','yingzi','limi'}
print(','.join(seq))

#os.path.join() ---函数:连接两个或更多的路径名组件
#1.如果各组件名首字母不包含’/’,则函数会自动加上
#2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
#3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
path1 = 'C:\\'
path2 = 'PythonCode\\test\\1.txt'
print(os.path.join(path1,path2))

#ljust() ---返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串
print(test.ljust(10,'*'))
print(test.ljust(10)+test)

#lower() ---转换字符串中所有大写字符为小写
print(test1)
print(test1.lower())

#lstrip() ---方法用于截掉字符串左边的空格或指定字符
print(test.lstrip('al'))
l4 = '555lsdjfsld333'
print(l4.lstrip('5'))

#maketrans() ---方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,
# 第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
#注:两个字符串的长度必须相同,为一一对应的关系。
#maketrans() translate() 需联合使用
# 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))

intab = 'a'
outtab = 'b'
trantab = str.maketrans(intab,outtab)
print(test.translate(trantab))

#partition() ---方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。。
#如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串
#,第二个为分隔符本身,第三个为分隔符右边的子串。
l5 = 'www.baidu.com.cn'
l6 = 'xmlmx'
print(l5.partition('.'))
print(l6.partition('l'))

print('***************************')
#rpartition() 方法类似于 partition() 方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。。
#如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,
# 第三个为分隔符右边的子串。
print(l5.rpartition('.'))
print(l6.rpartition('l'))

#replace() ---方法把字符串中的 old(旧字符串) 替换成 new(新字符串)
# 如果指定第三个参数max,则替换不超过 max

print(l5.replace('.','*'))
print(l5.replace('.','*',2))

#rfind() ---返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1
# str - - 查找的字符串
# beg - - 开始查找的位置,默认为0
# end - - 结束查找位置,默认为字符串的长度。
print(l5.rfind('.')) #默认返回最后一个出现的位置
print(l5.rfind('.',4,10)) #4:开始位置 10:结束位置

#rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常
# ,你可以指定可选参数[beg:end]设置查找的区间
# str -- 查找的字符串
# beg -- 开始查找的位置,默认为0
# end -- 结束查找位置,默认为字符串的长度。
print(l5.rindex('cn'))
print(l5.rindex('w'))
print(l5.rindex('www'))
print(l5.rindex('.',4,10))
print(l5.rindex('.',4))

#rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定
# 的长度小于字符串的长度则返回原字符串
print(l5.rjust(20))
print(l5.rjust(20,'&'))

#rsplit() 方法通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,
# 包括空格、换行(\n)、制表符(\t)等。类似于 split() 方法,只不过是从字符串最后面开始分割。
l6 = ' 7liming7lixiang7yunzhuo7liumi7 '
print(l6.rsplit('7'))
print(l6.split('7'))

#rstrip() 删除 string 字符串末尾的指定字符(默认为空格)
#strip() 删除 string 字符串头尾的指定字符(默认为空格)
l7 = '7liming7lixiang7yunzhuo7liumi7'
print(l6.rstrip())
print(l6.strip()) #strip()删除头尾指定字符串
print(l6.rstrip(' 7'))
print(l6.strip(' 7'))

#split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
print(l7.split('7'))

#splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,
# 如果参数 keepends False,不包含换行符,如果为 True,则保留换行符。
print(test4.splitlines())
print(l6.splitlines())

#startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True
# 否则返回 False。如果参数 beg end 指定值,则在指定范围内检查。
print(l7.startswith('7',7,10))
print(l7.startswith('7'))
print(l7.startswith('a'))

#swapcase() 方法用于对字符串的大小写字母进行转换
print(test1.swapcase())

#title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写( istitle())l8 =
'i am from china,my name is eileen'
print(l8.title())
print(l8.istitle())
print(test1.istitle()) #istitle() 判断是否所有单词都是首字母大写

#translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,
# 要过滤掉的字符放到 del 参数中

#maketrans() ---方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,
# 第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
#注:两个字符串的长度必须相同,为一一对应的关系。
#maketrans() translate() 需联合使用
# 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))
intab =
'a'outtab =
'b'trantab = str.maketrans(intab
,outtab)
print(test.translate(trantab))

#upper() 方法将字符串中的小写字母转为大写字母
print(test1.upper())

#zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0
print(test.zfill(10))

#replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串)
# 如果指定第三个参数max,则替换不超过 max 次name1 =
'李孝利,李晓丽,李萍、李霞、李明'
print(name1.replace('','',2))


#-------------必须会的七个基本函数-------------------
#(一)join() ---方法用于将序列中的元素以指定的字符连接生成一个新的字符串

#(二) split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

#(三)find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,
# 则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

#(四)strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

#(五)upper() 方法将字符串中的小写字母转为大写字母

#(六)lower() 方法转换字符串中所有大写字符为小写

#(七)#replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串)
# 如果指定第三个参数max,则替换不超过 max


#-------------必须会的其他语法 且适用于几乎其他所有数据类型-------------------
#(一)len() 长度name =
'郑伊健'
print(len(name))
print(len(test))li = [
11,2,1,4,3]
print(len(li))z = {
1,'3453','你是谁'}
print(len(z))

#(二)索引、下标,获取字符串中的某一个字符
#(三)while循环
#(四)for循环word =
'君不见黄河之水天上来奔流到海不复回'index =
0
while index < len(word):
print(word[index]) index +=
1
print('##########')
for i in word:
print(i)

for letter in 'python':
print(letter)


#字符串一旦创建,在内存中一旦创建就不能修改,如果要修改,那么就会在内存中重新创建一个新的字符串
#字符串一旦创建,不可修改
#一旦修改或拼接,都会造成重新生成字符串next =
'奔流到海不复回'info = word+
','+next #wordnextinfo 在内存中共开辟了三个内存空间存储这三个字符串
print(info)


#range 帮助创建连续的数字v =
range(0,10)
for i in v:
print(i)

#创建不连续的数字v1 =
range(0,10,2) #2为步长
for i in v1:
print(i)

#打印文字对应的索引
# index = 0
# while index < len(word):
# print(word[index])
# index += 1
print('*************')
for i in enumerate(word):
print(i)
print('*************')x =
range(0,len(word))
for i in x:
print(i,word[i])


posted @ 2020-01-30 20:43  琳淼  阅读(357)  评论(0编辑  收藏  举报