########## Begin ##########
def enChar(x,k):
a=ord(x)
y=chr(a+k)return y
########## End ##########
key =2 #密钥(也就是偏移量)
for x in 'abcdefghijklmnopqrstuvwxyz': #对于所有小写字母
y =enChar(x, key) #求x对应的密文字符
print('%s -> %s'%(x, y))
第2关:加密一个小写字母(续)
firstASCII =ord('a') #首个字符的ASCII码,请在enChar中使用
N =26 #支持的字符总数,请在enChar中使用
########## Begin ##########
def enChar(x,k):
a=ord(x)
b=a-97
c=(b+k)%26returnchr(97+c)
########## End ##########
key =2 #密钥(也就是偏移量)
for x in 'abcdefghijklmnopqrstuvwxyz': #对于所有小写字母
y =enChar(x, key) #求x对应的密文字符
print('%s -> %s'%(x, y))
第3关:加密一段文本
firstASCII =ord('a') #首个字符的ASCII码
N =26 #支持的字符总数
def enChar(x, key): #加密字符x,key为密钥
xid =ord(x)-firstASCII
yid =(xid+key)% N
y =chr(firstASCII+yid)return y
########## Begin ##########
def Caesar(text,key):
entext=""for x in text:if('a'<=x<='z'):
entext=entext+enChar(x,key)else:
entext=entext+x
return entext
########## End ##########
key =2 #密钥
text =input() #明文
enText =Caesar(text, key) #加密
print('%s -> %s'%(text, enText))
第4关:解密一段文本
########## Begin ##########
firstASCII =ord('a') #首个字符的ASCII码
N =26 #支持的字符总数
def enChar(x, key):
xid =ord(x)-firstASCII
yid =(xid-key)% N
y =chr(firstASCII+yid)return y
def Caesar(text, key):
result =''for x in text:if'a'<=x<='z':
x =enChar(x,key)
result = result + x
return result
key =2 #密钥
text =input()
enText =Caesar(text, key)print('%s -> %s'%(text, enText))
########## End ##########
第5关:扩展到可视字符
########## Begin ##########
firstASCII =ord(' ') #首个字符的ASCII码
N =95 #支持的字符总数
def enChar(x, key):
xid =ord(x)-firstASCII
yid =(xid+key)% N
y =chr(firstASCII+yid)return y
def Caesar(text, key):
result =''for x in text:if' '<=x<='~': #若x是小写英文字母
x =enChar(x,key)
result = result + x
return result
key =2 #密钥
text =input()
enText =Caesar(text, key)print('%s -> %s'%(text, enText))
########## End ##########
第6关:扩展到汉字
########## Begin ##########
firstASCII =ord('0') #首个字符的编码
N =65536 #支持的字符总数
def enChar(x, key):
xid =ord(x)-firstASCII
yid =(xid+key)% N
y =chr(firstASCII+yid)return y
def Caesar(text, key):
result =''for x in text:if0<=ord(x)<=65535: #若x是可视字符
x =enChar(x,key)
result = result + x
return result
key =2 #密钥
text =input()
enText =Caesar(text, key)print('%s -> %s'%(text, enText))
########## End ##########
没废话,直接上答案第1关:加密一个小写字母第2关:加密一个小写字母(续)第3关:加密一段文本第4关:解密一段文本第5关:扩展到可视字符第6关:扩展到汉字第1关:加密一个小写字母########## Begin ##########def enChar(x,k): a=ord(x) y=chr(a+k) return y########## End ##########key = 2 #密钥(也就是偏移量)for x in 'abcdefghijklmnopqrstuvwx