第5关:翻译密码

本篇博客介绍了翻译密码的原理,即通过将字符转换为其后第5个字符进行加密。同时,列举了Python中用于字符串类型测试的函数,如isalnum(), isalpha(), isdigit(), isspace(), islower(), isupper()和istitle()。并提供了两个测试用例,展示如何对输入字符串进行翻译密码的转换。" 52235921,5677872,使用setValuesForKeysWithDictionary避免模型文件崩溃,"['iOS开发', 'Objective-C', '模型转换', '字典转模型', 'KVC/KVO']
部署运行你感兴趣的模型镜像
small = [chr(i) for i in range(97,123)]
big= [chr(i) for i in range(65,91)] 
#分别对小写字母和大写字母字符串的调用
cipher = input()
list_cipher = list(cipher)
#因为字符串是不可改变的,所以将其变为列表后再逐个进行修改,之后再连接
for i in range(len(cipher)):
    if list_cipher[i].isalpha():
        #n[i].isalpha()判断n[i]字符串是否为字母,并返回布尔值
        if list_cipher[i] in small:
            #判断n[i]字符串是大写还是小写字母
            loc_letter = small.index(list_cipher[i])
            if  loc_letter > 20:
                #将第22个字母往后减去21,以免越界
                #例如21+5 ---> 26 (字母字符串总长度为25)
                list_cipher[i] = small[loc_letter-21]
            else:
                #由题意得将一个字母变成其后第5个字母
                list_cipher[i] = small[loc_letter+5]
        elif list_cipher[i] in big:
            #大写字母同理
            loc_letter = big.index(list_cipher[i])
            if  loc_letter > 20:
                list_cipher[i] = big[loc_letter-21]
            else:
                list_cipher[i] = big[loc_letter+5]
    else:
        continue
complete_cipher = ''.join(list_cipher)
#将修改后的列表连接,并以字符串的格式输出
print(complete_cipher)

本关任务:翻译密码。为了保密,常不采用明码电文,而用密码电文,按事先约定的规律将一个字符转换为另一个字符,收报人则按相反的规律转换得到原来的字符。例如,将字母“A”→“F”,“B”→“G”,“C”→“H”,即将一个字母变成其后第5个字母。例如,“He is in Beijing.”应转换为“Mj nx ns Gjnonsl.”。

常见的字符串类型测试函数:字符串类型测试函数返回的都是逻辑值,假设有字符串s,则有:
s.isalnum():是否全是字母和数字,并至少有一个字符
s.isalpha():是否全是字母,并至少有一个字符
s.isdigit():是否全是数字,并至少有一个字符
s.isspace():是否全是空格,并至少有一个字符
s.islower():s中的字母是否全是小写
s.isupper():s中的字母是否便是大写
s.istitle():s是否是首字母大写
判断一个字符是否为字母可以使用str.isalpha()函数。

测试输入1:He is in Beijing.
预期输出1:Mj nx ns Gjnonsl.
测试输入2:China
预期输出2:Hmnsf

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

-阿呆-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值