资讯专栏INFORMATION COLUMN

Strategy for Python Challenge(01)

BlackMass / 2657人阅读

摘要:按照这种写法确实是可以解决问题了,但是毫无疑问,我的解法还是停留在语言的思维。所以要是在中找不到中类的函数,可以去类中去找或者内置函数。


最近学习Python,对语言方面已经很熟悉了,想做些练习,奈何生活中的问题以我现在的能力还不能好好的解决,故而转向Python的一些编程挑战练习,于是就有了下面这篇文章。文章在一定程度上(是大量)参考了听雨轩这个人的博客点击前往

挑战关卡地址:http://www.pythonchallenge.com/pc/def/map.html 点击前往
这一光主要是根据字母加密,在这里就是字母换成它后面的一位字母(循环)。还是很容易实现的。

以下是我的版本,请注意我的环境是Python3(毕竟Python3代表未来嘛):

def tranString(myString):
    out = []
    alp = "abcdefghijklmnopqrstuvwxyzab"
    for letter in myString:
        out.append(alp[alp.index(letter) + 2])
    return "".join(out)

src = input("Please input the string:")
print("             The result:", end="")
print(tranString(src))

再一次强调以上代码是在Python3中运行的。
按照这种写法确实是可以解决问题了,但是毫无疑问,我的解法还是停留在C语言的思维。要知道,选择Python的一个很重要原因是:

  

"Life is short, you need Python" -------Bruce Eckel

来看看,Python更加优雅的实现方法:

import string


def tranString(myString):
    table = str.maketrans(string.ascii_lowercase, 
                          string.ascii_lowercase[2:] + string.ascii_lowercase[-2:])
    return myString.translate(table)


src = input("Please input the string:")
print("             The result:", end="")
print(tranString(src))

以上代码,使用到的str.maketrans是str类(内置类来的,跟string有些不同,下面会说)中的一个函数,主要是建立一个映射表,用法是maketrans(x, y=None, z=None, /)这个跟Python2中有点不一样,好像Python2中maketrans是属于string类的

在Python3中的string类已经没有方法的实现了,只是定义了一下字母的集合,如string.ascii_lowercasestring.ascii_letters。所以要是在Python3中找不到Python2中string类的函数,可以去str类中去找或者内置函数。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37528.html

相关文章

  • Strategy for Python Challenge(02)

    摘要:关卡地址点击前往这一关卡信息同样非常精简,只有短短的一句话,然后其他信息都没有什么用,真心用心良苦能说这个作者操蛋吗。不多说了,话语中提到了页面源码,那我们就看看源码有什么。 关卡地址:http://www.pythonchallenge.com/pc/def/ocr.html(点击前往) 这一关卡信息同样非常精简,只有短短的一句话,然后其他信息都没有什么用,真心用心良苦(能说这个作者...

    sydMobile 评论0 收藏0
  • Strategy for Python Challenge(03)

    摘要:关卡地址关卡是寻找两边都被三个大字母包围的小字母。代码可以参考上一小节的。最后一段输出代码,有很多括号,不可取,这主要是由于返回的序列,要用来转换成输出,或许有更好的方式来实现。 关卡地址:http://www.pythonchallenge.com/pc/def/equality.html 关卡是寻找两边都被三个大字母包围的小字母。 代码可以参考上一小节的。 代码如下: # -*-...

    miqt 评论0 收藏0
  • 人工智能/数据科学比赛汇总 2019.6

    摘要:内容来自,人工智能数据科学比赛整理平台。大赛面向全球高校在校生开放,旨在提升高校学生对数据分析与处理的算法研究与技术应用能力,探索大数据的核心科学与技术问题,尝试创新大数据技术,推动大数据的产学研用,本次大赛鼓励高校教师参与指导。 内容来自 DataSciComp,人工智能/数据科学比赛整理平台。Github:iphysresearch/DataSciComp 本项目由 ApacheC...

    gyl_coder 评论0 收藏0
  • Node.js 部署免费/自动续订 HTTPS

    摘要:当时结合本站的部署经验,给大家详细介绍了部署免费。截止年月日,由实时统计报告显示,在统计的多万活跃网站中,已经有万约的站点部署了证书服务。 随着互联网快速发展,互联网信息安全越来越受到大家重视,HTTPS 应该是近两年各大厂商都在尽力普及的技术之一。国内大厂基本上已经全面普及了 HTTPS。 本文首发于我的个人网站:听说 - https://tasaid.com/,建议在我的个人网站阅...

    seanlook 评论0 收藏0
  • 对象池Pools优化

    摘要:为了防止内存抖动,所以可以使用对象池顺利解决问题。获取矩阵对象获取某个矩阵的归还矩阵对象注意事项如果对象池为空,则对象池自己会一个返回。如果对象池内有对象,则取一个已存在的返回。 目录介绍 01.什么是对象池 02.glide哪里用到对象池 03.多条件key缓存bitmap 3.1 多条件key创建 3.2 key值的复用 04.glide对象池总结 05.学以致用对象池...

    qc1iu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<