#1、去掉字符串中所有的空格
ls = " a b c "
ls1 = ls.replace(" ","")
print(ls1)
#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()
#3、将字母全部转换为大写和小写
def zm_num(str):
for i in str:
a = i.capitalize() #字母大写转换
print(a,end=" ") #将转换完的字母输出
zm_num("ABCDefghiJkLmN") #调用zm_num()函数
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")
#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) #调用函数
# 6、随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)
def length(book_name):
l = len(book_name)
print("你心中的书名长度是:",l)
length("平凡的世界and world")
#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 ")
#8、 用户输入一句英文,将其中的单词以反序输出 例如:hello c sharp --- sharp c hello
def sentence(str1):
a = str1.split() #以空格分隔
b = a[::-1] #切片(交换位置)
print(b)
sentence("hello world KangKang")
#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的位置信息。
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"])
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('您今天呵可真是好兴致呀,呵呵不可一世呵呵呀', '呵呵'))
#方法一:成员操作 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")
#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中进行比较即可
#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()
#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()
#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")