题目
通过编写函数实现下述各题。
-
输入一字符串,各个子串之间按空白字符隔开,分别显式其中最长、最短子串,以及最大、最小字符。
-
输入单个字符,判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。
-
输入一字符串,各个子串之间按空白字符隔开,要求将其中的纯英文子串的大写字母改为小写,含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为’%'。
-
字符串加密与解密,输入一字符串,按如下规则加密,将原文中的每个字符对应的ascii码后,再将该ascii码加上一100-200之间的整数得到的数值即为该字符对应的密文;解密即为上述过程的逆运算。将该字符串加密后再解密,并且显示原文,密文,解密后文本。
-
输入一字符串,要求统计出该字符串中出现频率最高的字符。
代码:
第一题:
# 1输入一字符串,各个子串之间按空白字符隔开,分别显示其中最长、最短子串,以及最大、最小字符。
s=input('请输入一字符串,各个子串之间按空白字符隔开')
s1=s.split(' ')
for i in s1:
for j in s1:
if len(i)<=len(j):
temp1=j
j=i
i=temp1
print('最长子串:')
print(temp1)
for x in s1:
for y in s1:
if len(x)>=len(y):
temp2=y
y=x
x=temp2
print('最短子串:')
print(temp2)
print('最大字符:')
print(max(s))
print('最小字符:(若是空格则打印不显示)')
print(min(s))
第二题:
#2.输入单个字符,判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。
s=input('请输入单个字符:')
print('该字符是否是大写英文字母:')
print(s.isupper())
print('该字符是否是小写英文字母:')
print(s.islower())
print('该字符是否是非英文文字字符:')
if s.isupper()==False and s.islower()==False and s.isalpha()==True:
print('True')
else:
print('False')
print('该字符是否是空格:')
print(s.isspace())
print('该字符是否是数字:')
print(s.isdigit())
print('该字符是否是其他字符:')
if s.isalnum()==False and s.isspace()==False:
print('True')
else:
print('False')
第三题:
#3输入一字符串,各个子串之间按空白字符隔开,要求将其中的纯英文子串的大写字母改为小写,
#含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为'%'。
s=input('输入一字符串,各个子串之间按空白字符隔开')
s1=s.split()
l=[]
for i in s1:
if i.isalpha()==True:
i=i.lower()
l.append(i)
else:
l.append(i)
s=' '.join(l)
table=''.maketrans('1234567890','一二三四五六七八九零')
s=s.translate(table)
s=s.replace(' ','%')
print(s)
第四题:
# coding=utf-8
#字符串加密与解密,输入一字符串,按如下规则加密,
#将原文中的每个字符对应的ascii码后,再将该ascii码加上一100-200之间的整数得到的数值即为该字符对应的密文;
#解密即为上述过程的逆运算。将该字符串加密后再解密,并且显示原文,密文,解密后文本。
from random import randint
import string
def crypt(s):
print('原文:')
print(s)
s2=[]
suijishu=[randint(100,200) for i in range(0,len(s))]
for i in range(len(s)):
s2.append(int(ord(s[i])+suijishu[i]))
for i in range(len(s2)):
s2[i]=str(s2[i])
s=''.join(s2)
print('密文:')
print(s)
s=list(s)
s1=[]
j=0
for i in range(0,len(s)):
if j==len(s):
break
else:
s1.append(chr(int(int(s[j]+s[j+1]+s[j+2])-suijishu[i])))
j=j+3
s=''.join(s1)
print('解密:')
print(s)
s=input('请输入一个全英文的字符串:')
crypt(s)
第五题:
#5.输入一字符串,要求统计出该字符串中出现频率最高的字符。
s=input('输入一字符串:')
d={}
l=[]
for i in s:
if i not in d:
d[i]=1
else:
d[i]+=1
x=max(d.values())
for keys,values in d.items():
if values==x:
l.append(keys)
print(str(l)+'出现:'+str(x)+'次')
加密:
import string
def kscrption(s):
s1=string.ascii_lowercase
s2=string.ascii_uppercase
bfr=string.ascii_letters
afr=s1[3:]+s1[:3]+s2[3:]+s2[:3]
tbl=''.maketrans(bfr,afr)
s1=s.translate(tbl)
rtbl=''.maketrans(afr,bfr)
s2=s1.translate(rtbl)
print('加密:')
print(s1)
print('解密:')
print(s2)
s=input('输入一个字符串:')
kscrption(s)
运行结果
-
第一题:
-
第二题:
-
第三题:
-
第四题:
-
第五题: