知行编程网知行编程网  2022-03-14 05:00 知行编程网 隐藏边栏 |   抢沙发  115 
文章评分 0 次,平均分 0.0

菜鸟学Python粉丝的第23篇投稿

阅读本文大概需要5分钟

粉丝独白

菜鸟学编程想要提升水平,光看不练假把式。多练多看无疑是提升自身编程能力的重要途径,然而很多刚入门的新手往往不知如何去练去学而困惑,这里给大家推荐一个既好用又好玩的代码练习网站codewars,用过都说好!


要点:

  • 什么是Codewars

  • Codewars有什么好处

  • 2道题的妙解

  • 快速上手Codewars


01

Codewars是啥


Codewars是一个代码解题网站,支持包括Python在内的多种编程语言。目前里面题目分为8个段位(等级),对应的用户段位也分为8级,其中起始段位为8,段位越高,段数越小。


不同等级的题目有不同的经验值,新入门的朋友可以通过刷一些难度适宜的题目循序渐进地学习,同时提升自己的段位,随着经验值和段位的提升还会陆续解锁一些新技能。


比如:讨论、评分、出题等等,需要注意的是,解决一个问题获得的经验值并不是固定的,还会受到代码提交次数、运行速度等因素的影响,所以在提交之前一定要把问题考虑周全,最好先在本地环境中跑一下。



02

Codewars妙用


作为一个优秀的代码练习网站,codewars带给我们的收获主要有以下三个方面:


1.巩固Python语言基础

codewars有着极其庞大的题库,涵盖了字符串、数字、图形、面向对象等方方面面的知识点,通过不断的练习和积累,有助于我们进一步巩固和掌握Python基础知识、学习map、reduce等高阶函数的运用。菜鸟如何提升Python编程水平,老码农良心推荐上图为codewars中的题库和分类,正所谓“看花容易绣花难”,很多细节问题只有自己动手写过才会留意,而督促大家自己动手凭空构建代码、巩固基础知识正是使用codewars的意义所在。


同时,codewars提供的经验模式和评分、讨论等互动性功能,会对用户产生一种正向反馈,这一点对刚入门的新手也是极其宝贵的。


2.改进Python代码质量

codewars有一个非常好的设计,就是在我们解题成功后可以查看其他人的代码,其中不乏非常精辟的解题思路和 精炼的代码风格


这对于我们提高自身的代码质量、加深对Python语言的理解、拓展思维方式都是非常有益的。 别人的代码中也会有一些不足或缺陷,对于这些我们也要学会鉴别和避免。



03

举两道题的妙解


1.人名问题:

以固定格式给出一系列名字:[ {'name': 'Bart'}, {'name': 'Lisa'}, {'name': 'Maggie'} ],要求以“Bart, Lisa & Maggi”的格式输出:

  • 如果只有两个名字,则以“Lisa & Maggi”的格式输出

  • 如果只有一个名字,则以“Maggi”的格式输出

  • 如果给出的名字列表为空,则返回空值('')


解体思路:

以给出的名字列表长度为依据,分类提取数据并拼接字符串


小白代码:

菜鸟如何提升Python编程水平,老码农良心推荐上面的代码很成功的解决了这个问题,但是...会不会感觉代码太繁琐了?我们再来看下面一段代码。


高手示范:

菜鸟如何提升Python编程水平,老码农良心推荐

  • 这段代码非常巧妙的利用了-1,从后往前提取列表,而不是传统的从前往后。

  • 通过使用format和join函数,把代码长度缩短为原来的一半,代码质量和精简程度都发生了大幅提升。

  • 在codewars中,当我们以自己的方式解决问题后再去学习别人的代码,体会会更加深刻,收获也会更大。


2.矩形分割问题

给出一个矩形,求该矩形最少能被分割成几个正方形,并以列表的格式返回各正方形的边长;如果给出的初始矩形本身就是正方形,则返回None。

例如:给出一个5×3的矩形,则返回[3, 2, 1, 1](下图):

菜鸟如何提升Python编程水平,老码农良心推荐


思路解析:

以长方形短边为基准切割正方形,剩余部分作为一个新的矩形继续处理。当然,如果剩下的部分是一个 正方形则将其纳入结果当中(而不是返回None)。


代码参考:

菜鸟如何提升Python编程水平,老码农良心推荐

  • 上面这段代码是用了一个循环,也可以用递归调用来做,道理都是一样的。

  • 在这个题目中,我们首先把一个几何问题(矩形)转换为数学问题(两个边的长度)

  • 再把这个数学问题用 Python程序描述出来并予以解决。

  • 当然,这个题目还是比较简单的,随着段位的提升将有更加复杂和好玩的题目等着我们,足够你挖掘和发挥自己的聪明才智。


04

快速上手Codewars


作为一个全英文网站,刚接触难免会有一点别扭,这里我结合自己的使用情况简单介绍一些基本的功能 。

1.注册

可以单独注册一个codewars账号,也可以关联其他社区账号(比如github),不过无论使用哪种方式,下面两步 是不可避免的。


选择语言:

这里我们当然选择Python啦,如果有兴趣也可以选择其他语言。

菜鸟如何提升Python编程水平,老码农良心推荐


注册测试:

比较特立独行的地方,codewars注册的时候居然需要解题(虽然非常的简单)。

菜鸟如何提升Python编程水平,老码农良心推荐

解题通过后就可以正常的注册操作了。(有人在这道题之后还会遇到一个涉及面向对象的题目,不过我没遇到) 


2.选题 

codewars中选择题目的方式主要有以下3种,非常详细和人性化,大家一起来看一些: 


随机选题:

codewars会根据用户当前段位,从题库中随机选取难度相应的题目。如下图,进入主页后会显示出系 统选定的题目,如果想要解题就点击“TRAIN”按钮,如果想跳过换一道题就点选“SKIP”。

菜鸟如何提升Python编程水平,老码农良心推荐


段位选题:

如果想自己选择某个段位的题目,可以进入Kata页面手动点选。下图中我选中了段位5,在右侧就会列 出一堆相应段位的题目。

菜鸟如何提升Python编程水平,老码农良心推荐


类别选题:

同样是在Kata页面,可以根据题目的类别选择题目(可多选)。下图中我选择的题目类别 是“Strings”和“Arrays”,codewars会把同时涉及字符串和队列知识点的题目在右侧列出。

菜鸟如何提升Python编程水平,老码农良心推荐


3.查阅

在任意界面的右上角可以进行用户信息的相关操作,比如查看和修改个人信息、更改编程语言等,这里着重说一下 如何查询做过的题目:

  • 点击右上角头像图标进入个人主页

  • 然后进入solutions页面,可以看到以前做过的题目都在这里了

  • 包括已经通过的题目(completed)、未完成的题目(unfinished)。

菜鸟如何提升Python编程水平,老码农良心推荐


好了,关于codewars就简单介绍到这里,工欲善其事,必先利其器,codewars是一非常不错的网站,对菜鸟提供功力非常有帮助!


在解题的过程中我们会思考如何把现实问题转化为数学问题,如果把一个数学问题用编程语言描述出来, 如何从程序设计的角度来思考解决问题的方式。


希望今天的文章能给大家一些收获。当然网站还有更多的好玩的功能还没有尝试、很多有趣的题目还没有刷到,接下来就靠大家自己去探索了~ 

如果这篇文章对你有帮助,或者你有好玩有趣的网站,也可以留言讨论!


你的文章值得我为你打call



近期热门:

程序员如何用Python科学炒股

用Python来分析股票|发现炒股软件里惊人内幕

我爬取了微信的粉丝留言数,就为了...

零基础学了8个月的Python,到底有啥感悟


本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享