Python(四)字符串练习题

Demo01 去掉字符串中所有的空格

#1、去掉字符串中所有的空格
ls = " a b c  "
ls1 = ls.replace(" ","")
print(ls1)

Demo02 获取字符串中汉字的个数

#2、获取字符串中汉字的个数
def han_num(str):
	a = 0
	b = 0
	c = 0
	d = 0
	for i in str:
		if i.isdigit(): #数字判断
			a = a+1
		elif i >= 'a' and i <= 'z': #小写字母判断
			b = b+1
		elif i>='A' and i<='Z': #大写字母判断
			b=b+1
		elif i>= u'\u4e00' and i <= u'\u9fa5': #汉字判断
			c = c+1
		else: #其他字符判断
			d = d+1
	print("数字个数:",a)
	print("字母个数:",b)
	print("汉字个数:",c)
	print("其他字符个数:",d)
han_num("hello world 汉字 123") #调用函数han_num()

 

 

 

 

 

Demo03 将字母全部转换为大写和小写

#3、将字母全部转换为大写和小写
def zm_num(str):
	for i in str:
		a = i.capitalize() #字母大写转换
		print(a,end=" ") #将转换完的字母输出
zm_num("ABCDefghiJkLmN") #调用zm_num()函数

 

Demo04 根据标点符号对字符串进行分行

def fh_num(str):
	a = str.split(',') #将字符串分开,以","为标记
	print(a)
	for i in a:
		print(i)
fh_num("Hello KangKang, how are you, i am fine ,think you")

Demo05 去掉字符串数组中每个字符串的空格(循环) 

#5、去掉字符串数组中每个字符串的空格(循环)
def sz_num(str):
	a = ','.join(str) #以","为界,将数组中的字符串取出来,a此时为字符串类型
	# print(a) #测试a的值
	# print(type(a)) #a的类型
	b = a.replace(" ","").split(',') #去掉每个字符串中所有的空格,b此时为列表类型
	# print(b) #测试b的值
	# print(type(b)) #b的类型
	print("转换后的字符串:")
	#列表b中的每一个字符串打印输出
	for i in b:
		print(i,end=" ")
b = [" wh   at "," is "," y o u"," n a m e "] #数组
print("输入的字符串数组=",b)
sz_num(b) #调用函数

 

Demo06 随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)

# 6、随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)
def length(book_name):
	l = len(book_name)
	print("你心中的书名长度是:",l)
length("平凡的世界and world")

 

Demo07 接收用户输入的字符串,将其中的字符进行排序,并以逆序输出,例如:acdefb - abcdef-fedcba

#7、 接收用户输入的字符串,将其中的字符进行排序,并以逆序输出,例如:acdefb - abcdeffedcba
def paixu(str1):
	lst1 = list(str1) #转换类型为list
	# print(lst1)
	# print(type(lst1))
	lst1.sort() #排序
	str1 = "".join(lst1) #以""组成新的字符串
	# print(str1)#顺序输出
	str2 = str1[::-1]#逆序输出
	print(str2)
paixu(" a c   d ef  b   zwi jk g ")

 

Demo08 用户输入一句英文,将其中的单词以反序输出 例如:hello c sharp --- sharp c hello

#8、 用户输入一句英文,将其中的单词以反序输出 例如:hello c sharp --- sharp c hello
def sentence(str1):
	a = str1.split() #以空格分隔
	b = a[::-1] #切片(交换位置)
	print(b)
sentence("hello world KangKang")

 

Demo09 用户输入一句话,找出所有”呵“的位置

#9、用户输入一句话,找出所有”呵“的位置
def find_all(string, sub): #sub:待查找的字符串 
    start = 0 #待查找字符串的位置
    pos = []
    while True:
        start = string.find(sub, start)
        if start == -1:
            return pos
        pos.append(start)
        start += len(sub)
print(find_all('您今天呵可真是好兴致呀,呵呵不可一世呀', '呵'))
# string里面存了完整的字符串,find函数有两个参数,第一个参数sub,是需要寻找的子字符串,start是从string的什么地方开始寻找sub。
# 找到之后将位置信息保存到pos中。然后start往后移动一个sub的长度,开始寻找第二个匹配的位置,一直到返回-1,证明找不到了,就返回pos,
# 里面保存了所有sub的位置信息。

 

Demo10 有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若长度大于10,则截取长度为8的子串,将统一处理后的结果输出

def su_book(str1):
	k=0
	for i in str1:
	    if(len(i)>10): #长度不能大于10
	        str1[k]=str1[k][:9] #切片,将超出的部分取出
	    k+=1
	print(str1)
su_book(["算法设计与分析","数据结构","C语言程序设计基础教程","Thirteen Reasons Why"])

 

Demo11 用户输入一句话,找出所有”呵呵“的位置

def find_all(string, sub): #sub:待查找的字符串 
    start = 0 #待查找字符串的位置
    pos = []
    while True:
        start = string.find(sub, start)
        if start == -1:
            return pos
        pos.append(start)
        start += len(sub)
print(find_all('您今天呵可真是好兴致呀,呵呵不可一世呵呵呀', '呵呵'))

 

Demo12 如何判断一个字符串是否是另一个字符串的子串

#方法一:成员操作 in
def STR(a,b):
	if a in b:
		print(a,"是",b,"的子串")
	else:
		print(a,"不是",b,"的子串")
STR("abcdefgh","abcdefg")
#方法二:string模块的find()方法
import string
def STR(a,b):
	if (str.find(a,b) == -1):
		print(a,"是",b,"的子串")
	else:
		print(a,"不是",b,"的子串")
STR("abcdefg","abcdefgh")

 

Demo13 如何验证一个字符串中的每一个字符均在另一个字符串中出现

#13、如何验证一个字符串中的每一个字符均在另一个字符串中出现
import string
def STR(a,b):
	print("字符串A:",a)
	print("字符串B:",b)
	a1 = list(a)
	b1 = list(b)
	for i in a1:
		if i in b1:
			print("字符串A中的元素",i,"在 字符串B中出现过")
		else:
			print("字符串A中的元素",i,"不在 字符串B中出现过")
		print()
STR("abcdefgj","abcdefgh")
#解题思想:将输入的字符串转换成列表列表,然后用循环遍历A中的每个元素,然后将其B中进行比较即可

 

Demo14 如何生成无数字的全字母的字符串

#14、如何生成无数字的全字母的字符串
def RAN():
	import random
	import string
	a = random.randint(0,10) #生成的字符串长度(元素的个数)
	for i in range(a):
		b = random.choice(string.ascii_letters) #随机你生成字母
		print(b," ",end="")
RAN()

 

Demo15 如何随机生成带数字和字母的字符串

#15、如何随机生成带数字和字母的字符串
def random_str():
	import random
	import string
	random_str = ' '.join(random.choice(string.ascii_letters + string.digits) for _ in range(20))
	print(random_str)
random_str()

 

Demo16 如何判定一个字符串中既有数字又有字母

#16、如何判定一个字符串中既有数字又有字母
def str(string):
	if(not(string.isdigit()) and not(string.isalpha())):
		print("该数据中有数字也有字母")
	elif(string.isdigit() and not(string.isalpha())):
		print("该数据中只有数字")
	elif(not(string.isdigit()) and string.isalpha()):
		print("该数据中只要字母")
print()
str("fasdfaf")
print()
str("1346544")
print()
str("sfds465")

​​​​​​​

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值