python challenge <二>

就不截图了,题目就类似于找出规律吧:

K->M    O->Q      E->G

然后图下边有一堆乱码:

g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.

  这道题的意思应该就是根据题目中的提示,翻译下面这堆话,然后得到提示信息.毫无疑问,规律就是所有的字母后移2.当然了,这里需要特别注意的是符号应该是不需要做这个转变的.另外如果是简单的转变为ASCii码然后加2,像y和z应该变为符号吗?应该不是.这是这道题出得不太严谨的地方,需要靠一点猜.

这道题主要的一个地方是考察对于字符串的操作.如果有C语言基础的同志很有可能会习惯性的去改变一个字符串的各个字母.而python是不允许这么做的. 以下是我写的源码, 说实话,C/C++的风格还是相当明显的

#ord() convert string to number
def charAdd2(input):
if ((input<='z') and (input >= 'a')):
if input<'y':
return chr(ord(input) + 2)
else:
return chr(ord(input) +2 - 26)
else:
return input
def stringadd2(inputLine):
i = len(inputLine)
j = 0
outputLine = ''
while i != 0 :
outputLine = outputLine+charAdd2(inputLine[j])
i = i-1
j = j+1
return outputLine
input = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
output = stringadd2(input)
print('method 1:')
print(output)


运行得到:i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

得到了提示,其实只是需要调用maketrans()就可以解决这个问题

是不是一下就精简了很多?这就是python的优势所在,有很多现成的库可用.不用像C那样关注那么底层的操作.
BTW, 做到这儿, 我遇到了一个小问题,到底应该拷贝哪句话作为URL呢?提示中说的是: now apply on the url
其实这个地方也是语焉不详,事实上它的目的是将现在的url关键字map作为input作这个转换.得到ocr.html.
也有可能是语言有障碍吧. 好吧,go向下一题:http://www.pythonchallenge.com/pc/def/ocr.html

#call maketrans
def level1v(msg):  
    import string  
    abc = string.lowercase  
    trans = string.maketrans(abc,abc[2:]+abc[:2])  
    return msg.translate(trans) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值