七.字符串的常用方法

目录

七.字符串的常用方法

1.常用方法

capitalize

 center ,rjust,ljust

count

 endswith

 startswith

 index

rindx

 find,rfind

 encode

 isilower,isupper,istitle,isspace,isdige,isalnum,isalpha

 lower,upper,title

 spit

 join

 strip,lstrip,rstrip

 replace

 2.一些习题


七.字符串的常用方法

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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值