Python简单应用V

题目

通过编写函数实现下述各题。

  1. 输入一字符串,各个子串之间按空白字符隔开,分别显式其中最长、最短子串,以及最大、最小字符。

  2. 输入单个字符,判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。

  3. 输入一字符串,各个子串之间按空白字符隔开,要求将其中的纯英文子串的大写字母改为小写,含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为’%'。

  4. 字符串加密与解密,输入一字符串,按如下规则加密,将原文中的每个字符对应的ascii码后,再将该ascii码加上一100-200之间的整数得到的数值即为该字符对应的密文;解密即为上述过程的逆运算。将该字符串加密后再解密,并且显示原文,密文,解密后文本。

  5. 输入一字符串,要求统计出该字符串中出现频率最高的字符。

代码:

第一题:

# 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)
    

运行结果

  1. 第一题:
    在这里插入图片描述

  2. 第二题:
    在这里插入图片描述

  3. 第三题:
    在这里插入图片描述

  4. 第四题:
    在这里插入图片描述

  5. 第五题:
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cwn_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值