古老咒语的解读


在宇宙深处的异世界,流传着这么一句古老的咒语:”showmethemoney”!!
生于80年代的带把儿的同胞们估计都知道这句咒语所带来的恐怖威力。
而今天我要谈的不是流传着这句邪恶咒语的异世界,而是利用目前人类能达到的最先进的分析手段,冒着被诅咒至万死不辞的危险,将这句咒语划分得支离破碎进行一些局部地解读。
没错,我们将使用的就是Python的string处理。

Python的string 能够使用类似list 的方式来处理,所以能够用下标进行划分产生新的string。于是就有了下面的代码:

>>> litestring = "showmethemoney"
>>> print litestring[9:]
money

当然了,这样划分的含义就是从第10个字符开始一直到最后,逐个提取原string 中的字符组成新的string。

但是,你或许还知道提取的步进是可以调整的,比方说:

>>> print litestring[::2]
somteoe

当然,步进还能是负数:

>>> print litestring[:8:-1]
yenom

等等!你可能会有点糊涂了,它是怎么实现的?
它指定了第1个字符到第9个字符,设置步进为-1,怎么返回了第10个字符到第14个字符的倒序排列?!
其实,当我们设置了负数的步进时,Python 从第一个下标开始倒着走,一直数到第二个下标位置。所以出现了这样的结果。

依此类推,如果我们抽取litestring[6:8:-1]的话,可以得到temwohsyenom了吧。
答案是:错!它只会返回个空字符串,也就是”。

>>> print litestring[6:8:-1]
''
>>>

为什么?你又糊涂了,之前不是说从第一下标倒数到第二下标吗?
要理解这个问题,请让我们这样想象:
在string 的第1个字符也就是编号0的左边,Master Guido设置了一道对任何微小的加速度异常敏感的能量力场。任何企图冲破这堵力场到达string 另一端的努力都会被无情的反弹。唯一的办法是紧贴在0的位置,用极其微小的恒定速度寻找力场的中的虫洞,顺着能量流滑到string 的另一端。
所以litestring[:8:-1]能得到预想的结果,而litestring[6:8:-1]则无法突破,甚至litestring[0:8:-1]都会因为产成了微小的加速度而被直接反弹。

理解了这个假想原理之后,我们就可以很容易的翻转任何字符串了:

>>> print litestring[::-1]
yenomehtemwohs

当然,只要不企图冲过那堵力场,负数的步进还是有效的:

>>> print litestring[2::-1]
ohs

或者:

>>> print litestring[8:5:-1]
eht

好了,关于这段咒语的解读就到这里了。更深入的探讨需要我再积累一些功力来抵御咒语副作用带来的的反噬。

至于那句”whoisyourdaddy”…
这是禁句!
鉴于它在异世界造成的惨无人道虫道和神道的浩劫,在经历了第一次星际大战的痛苦回味之后。早在第二次星际大战之前,三族首领就签订了针对该咒文的永久禁令。并将响应它的邪恶力量深藏在人类所能制造得最坚固的秘匣中,外层施加了神族的最强能量盾,最后由具有再生能力的虫族肉甲层层保护,严密监视于黑暗的宇宙深处某个空间中。
而目前虽然普通人即使使用这句咒语,也不会有什么反应,但是它依然被禁止在公开场合宣读。
所以,答应我,看到它时请直接滤过,不要读出来,甚至想都不要去想,要乖哦~~

Tagged on:

One thought on “古老咒语的解读

发表评论

电子邮件地址不会被公开。