Python--字符串的练习

目录

1. 去掉字符串中所有的空格

​2. 获取字符串中汉字的个数

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

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

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

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

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

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

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

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

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

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

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

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

​15. 如何随机生成带数字和字母的字符串

​16. 如何判定一个字符串中既有数字又有字母


1. 去掉字符串中所有的空格

st = "accF--  ___  a77 7 dR AD  aac 3km  i hf        ks"
st_1 = st.split(" ")
st_2 = "".join(st_1)
print(st_2)


2. 获取字符串中汉字的个数

# 方法一		"没有找到中文标点范围、统计的仅包括中文汉字数量"
num = 0
s = "w__sdcqutqer_哦IUY给你们erd。,-、、·zsv二手房egr地铁tewq氛围感染miss"
for i in s :
	if '\u4e00' <= i <= '\u9fff':
		num += 1
print(num)

# 方法二		"统计的包括中文字和中文标点数量"
s = "sdvfvw__sdcqutqer_哦IUY给你们erd。,-、、zsv二手房egr地铁tewq氛围感染miss"
total_len = len(s)

print("UTF-8 编码:")		#UTF_8中 中文汉字的长度为3;但是中文的点·,长度为2
str_utf8 = s.encode("UTF-8")		#将字符串编码成UTF_8编码
len_utf8 = len(str_utf8)
chin_len1 = (len_utf8 - total_len)//2
print("chinese_len: ",chin_len1)

print("GBK 编码:")		#GBK中 中文汉字的长度为2
str_gbk = s.encode("GBK")		#将字符串编码成GBK编码
len_gbk = len(str_gbk)
chin_len2 = len_gbk - total_len
print("chinese_len: ",chin_len2)


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

s = "qwe.rt/ykj=casdf`kmn-CA=VAA=A-DSGSV"
print("A-->a",s.lower())
print("a-->A",s.upper())


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

s = "hello,world!mast,efe!asc.sd!fsw.wef!wef\efew\c"
s1 = "\n".join(s.split(","))
print(s1,"\n")
s2 = "\n".join(s.split("!"))
print(s2)


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

s = "  aw  ··~~? dw   ??  !wd qd !! fs erg e\s可 都是rg ee   fef   fewf    der "
for i in s :
	if i != " " :
		print(i,end="")

 

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

book = "《月亮与六便士》"
print(len(book))


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

st = str(input("请输入一串字符:"))
st =list(st)
st.sort()
st1 = "".join(st)
print ("降序:",st1)

st.reverse()  	# 等于 st.sort(reverse=True)
st2 = "".join(st)
print ("升序:",st2)


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

st = str(input("请输入一句英文:"))
st1 = st.split(" ")
st2 = [0] * len(st1)
j = 0
for i in range(len(st1)-1,-1,-1) :
	st2[j] = st1[i]
	j +=1
st3 = " ".join(st2)
print(st3)


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

st = str(input("请输入一句话:"))
num = 0
while num <= st.rfind("呵") :
	num = st.find("呵",num,len(st))
	print(num,end=" ")
	num += 1


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

st = ["Ball of Fat","The Little Prince","呐喊","Norwegian Wood","我与地坛","吉力卜的风","狼王梦","The Adventures of Tom Sawyer","三国演义","The Twilight Saga"]
n = 0
st1 = [0]*10
for i in range(0,len(st)) :
	if len(st[i]) > 10 :
        #包含空格
		st1[n] = st[i][0:8]
		n += 1
for i in range(0,n):
	st1.remove(0)
print(st1)
# st2 = " ".join(st1)
# print(st2)


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

st = str(input("请输入一句话:"))
# st = "呵sc呵尔法呵呵wac呵呵sscwd呵`.呵呵呵 .,"
num = 0
while num <= st.rfind("呵") :
	num = st.find("呵",num,len(st))
	if st.find("呵",num+1,len(st)) == num+1 :
		print("(%s,%s)"%(num,num+1,),end=" ")
	num += 1


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

st1 = "srtj sertyu werty 5rert"
st2 = "4yfser werty sa345 "
st3 = "5rert"
ans1 = st3 in st1
ans2 = st2 in st1
print("st3是st1的子集吗:",ans1)
print("st2是st1的子集吗:",ans2)


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

st1 = "srtfj ser4tyu wertya 5rert"
st2 = "4yfser werty sajj45 "
n = 0
for i in st2 :
	if i in st1 :
		n += 1
if n == len(st2) :
	print("st2的所有字符均在st1中!!!")
else :
	print("st2的所有字符不完全在st1中!!!")


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

st = "werhjk123mn345m234n5nm003n2m2n4n5m89n4"
for i in range(0,10) :
	st = st.replace("%s"%i,"")
print(st)


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

def create_string_number(n):
    m = random.randint(1, n)
    a = "".join([str(random.randint(0, 9)) for _ in range(m)])
    b = "".join([random.choice(string.ascii_letters) for _ in range(n - m)])
    return ''.join(random.sample(list(a + b), n))

import random
import string
print(create_string_number(17))


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

st = "erhtrew234512ertrwwert32w很过分比较好de56trewq23dsw3rfdw4tfe3467ut567u"

print("",st.isalnum())			#包涵汉字

# st = "erhtrew234512ertrwwert32wde56trewq23dsw3rfdw4tfe3467ut567u"
for i in st :
	if '\u4e00' <= i <= '\u9fff' :
		break
else :
	print("",st.isalnum())

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.98℃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值