目录
isilower,isupper,istitle,isspace,isdige,isalnum,isalpha
七.字符串的常用方法
1.常用方法
capitalize
capitalize()……格式化字符串,将字符串首字母大写

center ,rjust,ljust
center(with,filling)……在字符串为with(应该大于字符串文本长度)长度下,将字符串居中,并以filling填充空格(可选)
ljust(with,filling)……在字符串为with(应该大于字符串文本长度)长度下,将字符串居左,并以filling填充空格(可选)
rjust(with,filling)……在字符串为with(应该大于字符串文本长度)长度下,将字符串居有,并以filling填充空格(可选)

count
count(元素)……统计元素出现的次数(元素可以是字符也可以是字符串)

endswith
endswith(元素)……判断字符串是否以该元素结尾 返回布尔类型

startswith
startswith(元素)……判断字符串是否以该元素开头 返回布尔类型

index
index(元素)……寻找指定元素返回第一个元素的位置 若没有则报错

rindx
rindex(元素)…… 逆向寻找指定元素返回第一个元素的位置 若没有则报错

find,rfind
find(元素)……寻找指定元素返回第一个元素的位置 若没有则返回 -1
rfind(元素)……逆向寻找指定元素返回第一个元素的位置 若没有则返回 -1

encode
encode()……将字符串转换为字节数据输出

isilower,isupper,istitle,isspace,isdige,isalnum,isalpha
这些方法均用于判断字符串的属性 都是返回布尔型
islower()……判断字符串是否为小写
isupper()……判断字符串是否为大写
istitle()……判断字符串是否为标题(即每个单词首字母是否为大写)
isspace()……判断是否为空格键
isdigit()……判断是否为数字
isalnum()……判断是否为有效字符(文字,字母,数字,下划线)
isalpha()……判断是否为字母

lower,upper,title
lower()……将字符串转为小写
upper()……将字符串转为大写
title()……将字符串转化为标题

spit
spit(sep,num)……分割字符串以sep为分割(分割后不包含sep),分割num次(默认分完) 返回列表

join
'字符'.join()……将可迭代对象转换为以该字符为分割的字符串

strip,lstrip,rstrip
strip()……清除字符串两侧的空格
lstrip……清除字符串左侧的空格
rstrip……清除字符串右侧的字符

replace
replace(old,new,max)……将old替换成new,不超过max次(默认全部)

2.一些习题

以下代码皆是自己的想法如有错误还请指正 谢谢!!!
import random
print('1.去掉空格')
print('a s d f g h j jk l')
def place(strr) :
strr_temp = ''
if not isinstance(strr,str) :
raise TypeError('The object does not accept data types other than a "string"')
for i in strr :
if not i.isspace() :
strr_temp += i
return strr_temp
print('去空格:',place('a s d f g h j jk l'))
print('')
print('2.获取字符串中汉字的个数')
print('hello word 我爱这个世界 5201314')
def chinese_Num(strr):
strr = place(strr)
num_temp = 0
if not isinstance(strr,str) :
raise TypeError('The object does not accept data types other than a "string"')
strr = strr.lower()
for i in strr :
if not i.isdigit() and not i.islower() and i.isalnum:
num_temp += 1
return num_temp
print('其中的汉字个数:',chinese_Num('hello word 我爱这个世界 5201314'))
print('')
print('3.将字母全部转换为大写和小写')
print('aSdFghj')
def lo_or_up(strr) :
if not isinstance(strr,str) :
raise TypeError('The object does not accept data types other than a "string"')
lower = strr.lower()
upper = strr.upper()
return upper, lower
print('转大写:%s;转小写:%s'%(lo_or_up('aSdFghj')))
print('')
print('4. 根据标点符号对字符串进行分行')
print("123456,789456,258852,ashdasiuhg")
def fh_row(strr,fh) :
if not isinstance(strr,str) :
raise TypeError('The object does not accept data types other than a "string"')
fh = str(fh)
strr_temp = ''
strr = strr.split(fh)
for i in strr :
strr_temp += i + "\n"
return strr_temp
print(fh_row("123456,789456,258852,ashdasiuhg",","))
print("5. 去掉字符串数组中每个字符串的空格(循环)")
print("['2 5 1225 ','as lajd akolh','564dfa fdfsd 4']")
lss = ['2 5 1225 ','as lajd akolh','564dfa fdfsd 4']
def ls_space(ls) :
if not isinstance(ls,(list)) :
raise TypeError('The object does not accept data types other than a "list"')
for i in range(0,len(ls)) :
strr = ''
for j in ls[i] :
if not j.isspace() :
strr += j
ls[i] = strr
return ls
print(ls_space(lss))
print('')
print("6. 随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)")
strr = str(input('输入你喜欢你的书名:'))
print('%s的长度为%s'%(strr,len(strr)))
print("7. 接收用户输入的字符串,将其中的字符进行排序,并以逆序输出,例如:acdefb - abcdeffedcba")
strr = str(input('输入一段字符:'))
def paixu(strr) :
ls = list(strr)
ls.sort(reverse = True)
strr_temp = ''.join(ls)
return strr_temp
print('字符串反转%s'%(paixu(strr)))
print()
print('8. 用户输入一句英文,将其中的单词以反序输出 例如:hello c sharp --- sharp c hello')
print('hello woeld I love you')
def word_r(strr) :
ls = []
start = 0
end = 0
if not isinstance(ls,(list)) :
raise TypeError('The object does not accept data types other than a "list"')
while 1:
end = strr.find(' ',start)
end = len(strr) if end == -1 else end
ls.insert(0,strr[start:end])
if end == len(strr) :
break
start = end + 1
strr_temp = ' '.join(ls)
return strr_temp
print('反转:',word_r('hello woeld I love you'))
print('9. 用户输入一句话,找出所有”呵“的位置')
strr = str(input('输入一段话:'))
def find(strr,finds) :
start = 0
print("呵的位置有:",end = '')
while 1 :
start = strr.find(finds,start + 1)
if start == -1 :
break
print(start,end = ', ')
find(strr,'呵')
print("")
print('10.有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若长度大于10,则截取长度为8的子串,将统一处理后的结果输出')
arr = ["asdas","adfadhakjfd","3223adavdas","qeyuireopq","ajdf54563"]
print(arr)
def len_Eight(ls,leng) :
if not isinstance(ls,(list)) :
raise TypeError('The object does not accept data types other than a "list"')
i = 0
while 1:
print(len(ls),i)
if len(ls[i]) > leng :
ls.insert(i+1,ls[i][leng:])
ls[i] = ls[i][:leng]
i += 1
if i >= len(ls) :
break
return ls
print("截取后:",len_Eight(arr,8))
print("")
print("11. 用户输入一句话,找出所有”呵呵“的位置")
strr = str(input('输入一段话:'))
find(strr,"呵呵")
print("")
print('12. 如何判断一个字符串是否是另一个字符串的子串')
a,b = input('输入俩个串字符用“,”号隔开:').split(',')
def son_str(str1,str2):
place1 = str1.find(str2)
place2 = str2.find(str1)
if place2 != -1 and place1 != -1 :
print('%s与%s互为子字符串及%s等于%s'%(str1,str2,str1,str2))
elif place1 != -1 :
print('%s是%s的子字符串'%(str2,str1))
elif place2 != -1 :
print('%s是%s的子字符串'%(str1,str2))
else :
print('%s与%s互不为子字符串'%(str1,str2))
son_str(a,b)
print()
print('13. 如何验证一个字符串中的每一个字符均在另一个字符串中出现')
print('"abcp","abcd")')
def yz_t(str1,str2) :
for i in str1 :
if str2.find(i) == -1 :
print('%s中的字符不都在%s中出现'%(str1,str2))
break
else :
print('%s中的字符都在%s中出现'%(str1,str2))
yz_t('abcp',"abcd")
print()
print('14. 如何生成无数字的全字母的字符串')
def random_w(pan_d,num):
flag = ''
pan_d = str(pan_d)
if pan_d == 'numr':
for i in range(0,num) :
flag += str(random.randint(0,9))
elif pan_d == 'string':
for i in range(0,num):
rand = random.randint(65,116)
rand = rand if rand <= 90 else (rand + 6)
flag += str(chr(rand))
elif pan_d == 'str_num' :
for i in range(0,num) :
flag_g = random.randint(0,1)
if flag_g == 0 :
flag += str(random.randint(0,9))
else :
rand = random.randint(65,116)
rand = rand if rand <= 90 else (rand + 6)
flag += str(chr(rand))
return flag
print(random_w('string',13))
print()
print('15. 如何随机生成带数字和字母的字符串')
print(random_w('str_num',13))
print()
print("16. 如何判定一个字符串中既有数字又有字母")
def pan_sn(strr) :
flag_s = 0
flag_n = 0
for i in strr :
if i.isdigit() :
flag_n = 1
if i.isalpha() :
flag_s = 1
if flag_n == 1 and flag_s == 1 :
print('%s既含有字母又含有数字'%(strr))
elif flag_n == 1 :
print('%s不含有字母'%(strr))
elif flag_s == 1 :
print('%s不含有数字'%(strr))
else :
print('%s中既没有字母也没有数字'%(strr))
pan_sn('adsfadadadsfe65431354')

被折叠的 条评论
为什么被折叠?



