Python练习题目(4)

字符串 a = “aAs3eAF”

  1. 请将 a 字符串的数字取出,并输出成一个新的字符串。
from string import digits
x=input('请输入一个字符串')
# y=list(enumerate(x))
# print(y)
newstr=x.translate(str.maketrans('','',digits))#python3的写法
#A层:字符串x调用translate方法,满足条件B
#B层:字符串str的方法调用 替换方法maketrans,替换条件为:C
#C层:讲digits类型的字符转化为:空
print(newstr)
  1. 请统计 a 字符串中每个字母的出现次数(忽略大小写,a 与 A 是同一个字母),并输出成一个字典。 例{‘a’: 3, ‘s’: 1, ‘3’: 1, ‘e’: 1, ‘f’: 1}
from collections import Counter
from jieba import cut
def frequency(str1):
    return Couter(cut(text))
str1=input('请输入一个英文字符串')
print(frequency(str1))
  1. 请去除 a 字符串多次出现的字母,仅留最先出现的一个,大小写不敏感。例’ aAs3eAF’,经过去除后,输出 ’ aAs3eF ’
string1 = input('请输入一个字母字符串')

print(string1)

string2 = ''.join(list(set(string1.lower())))

print(string2)
  1. 按 a 字符串中字符出现频率从高到低输出到列表,如果次数相同则按字母顺序排列。
class charAndCount:
    def __init__(self,ch=None,count=None):
        self.ch=ch
        self.count=count
s=input("请输入一个字符串:")
l=[]
for c in s :
    cc = [m for m in l if m.ch==c]#在l中需找符合条件 m.ch=c的字符串
    if len(cc)==0:
        l.append(charAndCount(ch=c,count=1))
    else:
        cc.__getitem__(0).count +=1
print("按输入顺序")
for n in l:
    print(n.ch,"=",n.count)
print("按字符出现次数")
for n in sorted(l,key=lambda x : -x.count):
    print(n.ch, "=", n.count)
print("按字符顺序(a.b.c..的顺序)排版")
for n in sorted(l,key=lambda x :(-x.count,x.ch)):
    print(n.ch, "=", n.count)

5、编写函数,接收一句英文,把其中的单词倒置,标点符号不倒置,例如:I like Beijing.经过函数后变为:beijing. like I

def rev(s):
    return ' '.join(reversed(s.split()))

x=rev('I like beijing')
print(x)

6、编写函数,接收一个字符串,返回其中最长的数字字串。

import re
print(max(re.findall('\d*',input('请输入一个字符串')),key=len))
#A层:re.findall:根据\d格式,对input中输入的字符串进行分割,求取分割数字串的长度赋值给key
#B层: max,求取长度最大的串
#C层:打印max返回的串

7、编写函数,接收一个字符串,返回其中每个字符的最后

string1 = input('请输入一个字母字符串')
print(string1)
string2 = ''.join(list(set(string1.lower())))
print(list(string2))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46144237/article/details/109725552