1.贴题
题目来自PythonTip
给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。
例如a=”cagy”, b=3,
则输出 :fdjb
2.说明
考察点
- 英文字母与数字的转换
- 如果超过z的处理
3.参考代码
1
2
3
4
5
6
7
|
c = "" #定义空字符串c用于存放加密后的字符串 for j in a: #遍历字符串a中的每一个英文小写字母 if ord (j) + b < 124 : #判断加密后是否不超过z c + = chr ( ord (j) + b) #如果不超过则直接添加 else : c + = chr ( ord (j) + b - 26 ) #否则添加回到开头的字母 print (c) #打印加密后的字符串 |
4.其他写法
1.取余法
1
|
print ' '.join([chr(ord(' a ')+(ord(x)+3-ord(' a')) % 26 ) for x in a]) |
2.构造法
1
2
3
4
5
6
7
8
|
def conve(a,b): low_set = 'abcdefghijklmnopqrstuvwxyz' * 2 res = '' for x in a: res + = low_set[low_set.index(x) + b] return res a = conve(a,b) print a |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_41980474/article/details/80301357