Python----字符串练习

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

>>> ss = "   123   "
>>> ss.strip()
'123'

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

s =input("请输入字符串:")
a = 0
for i in s:
    if i>= u'\u4e00' and i <= u'\u9fa5': #\u4E00 ~ \u9FFF  中文字符
        a = a+1
print("汉字的个数:", a)
请输入字符串:冲国人
汉字的个数: 3

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

>>> s = 'one Go one go'
>>> print(s)
one Go one go
>>> print(s.upper()) #转化为大写
ONE GO ONE GO
>>> print(s.lower()) #转化为小写
one go one go

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

>>> s = 'ooo olei olei,go go go'
>>> print(s)
ooo olei olei,go go go
>>> a = s.split(',') #检测到 , 进行切割
>>> for i in a:
...     print(i) 
...
ooo olei olei
go go go

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

>>> s = 'wc    op!'
>>> s
'wc    op!'
>>> for i in a:
...     print(s.replace(" ",""))
...
wcop!
wcop!
>>>

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

>>> a = str(input("请输入书名:"))
请输入书名:三体
>>> print("字符串长度为",len(a))
字符串长度为 2

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

>>> s = str(input("请输入字符串"))
请输入字符串342719bacfe
>>> l = list(s)
>>> l
['3', '4', '2', '7', '1', '9', 'b', 'a', 'c', 'f', 'e']
>>> l.sort() #进行排序,默认升序
>>> l
['1', '2', '3', '4', '7', '9', 'a', 'b', 'c', 'e', 'f']
>>> l.reverse() #将列表元素顺序进行翻转
>>> l
['f', 'e', 'c', 'b', 'a', '9', '7', '4', '3', '2', '1']
>>> s = "".join(l) #按照特定的格式将一个可迭代的对象拼接成字符串,将其中的空格去掉
>>> s
'fecba974321'

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

>>> s = input("请输入一句英文:").split(" ") #split去掉空格以免报错
请输入一句英文:hello world
>>> s
['hello', 'world']
>>> s.reverse() #翻转元素
>>> s = " ".join(s) 
>>> s
'world hello'

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

>>> s = input("请输入呵:")
请输入呵:呵呵呵啊
>>> a = 0
>>> for i in s:
...     if i == "呵":
...             print(a)
...     a += 1
...
0
1
2

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

>>> l = ["没有共产党就没有新中国","党啊,亲爱的妈妈","红楼梦","毛泽东选集","三国演义","水浒传","西游记","我の奋斗","爱丽丝漫游奇境","伊索寓言"]
>>> for i in range(0,len(l)):
...     a = l[i]
...     if len(a) > 10:
...             a = a[:8] #切片,切除7之后的字符
...             l[i] = a
...
>>> print(l)
['没有共产党就没有', '党啊,亲爱的妈妈', '红楼梦', '毛泽东选集', '三国演义', '水浒传', '西游记', '我の奋斗', '爱丽丝漫游奇境', '伊索寓言']

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

>>> s = input("请输入呵:")
请输入呵:呵呵啊啊呵呵哈哈呵呵
>>> for i in range(0,len(s)):
...     if s[i] == "呵" and s[i+1] == "呵":
...             print("呵呵在%s的位置"%i)
...
呵呵在0的位置
呵呵在4的位置
呵呵在8的位置

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

>>> a = input("第一个字符串:")
第一个字符串:12233456
>>> b = input("第二个字符串:")
第二个字符串:3456
>>> if a in b:
...     print("字符串一是字符串二的子串")
... elif b in a:
...     print("字符串二是字符串一的子串")
... else:
...     print("都不是")
...
字符串二是字符串一的子串

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

a = input("第一个字符串:")
b = input("第二个字符串:")
flag = "true"
if len(a) < len(b):
    for i in a:
        index = 0
        for j in b:
            index += 1
            if i == j:
                break
            if index == len(b):
                flag = "false"
elif len(b) <= len(a):
    for i in b:
        index = 0
        for j in a:
            index += 1
            if i == j:
                break
            if index == len(a):
                flag = "false"
if flag == "true":
	print("一个字符串中的每一个字符均在另一个字符串中出现")
else:
	print("一个字符串中的每一个字符没有都在另一个字符串中出现")
请输入第一个字符串:abcdef
请输入第一个字符串:bcdef
一个字符串中的每一个字符均在另一个字符串中出现

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

>>> import string
>>> import random
>>> for i in range(0,random.randint(1,10)):
...     print(random.choice(string.ascii_letters),end="") #string.ascii_letters 所有字母
...
wMWqcmHg

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

>>> import random
>>> import string
>>> random_str = ''.join(random.sample(string.ascii_letters + string.digits, 20)) #random.sample生成不重复的随机数
>>> print(random_str)
ZRiaEJShlndvO5fDrGg0

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

>>> s = input("请输入一个字符串:")
请输入一个字符串:123456
>>> if (s.isdigit() and not s.isalnum()) and not s.isalpha(): #not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句
...     print("既有数字也有字母")
... else:
...     print("不是既有数字也有字母")
...  
不是既有数字也有字母
... 
请输入一个字符串:a123456
既有数字也有字母

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值