最近发现一个不错的代码练习网站codewar(http://www.codewars.com)。注册了一个账号,花了几天的茶余饭后时间做题,把等级从8级升到了7级。本文的目的主要介绍使用感受及相应题目,可供大家参考。

新人注册为8级,入门题NO.1:

topic: Multiply

instructions:The code does notexecute properly. Try to figure out why.

my solution:

def multiply(a, b):
c = a * b
return c

NO2:

topic: ListFiltering

instruction:In this kata you will create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out.

example:

my solution:

def filter_list(l):
new_l =[]
for x in l:
if type(x) != str:
new_l.append(x)
return new_l

best practice from others:

def filter_list(l):
'return a new list with the strings filtered out'
return [i for i in l if not isinstance(i, str)]

and

def filter_list(l):
'return a new list with the strings filtered out'
return [x for x in l if type(x) is not str]

No.3

topic:two to one

instruction:Take 2 strings s1 and s2 including only letters from ato z. Return anew sorted string, the longest possible, containing distinct letters,each takenonly once - coming from s1 or
s2.

Examples:

``` a = "xyaabbbccccdefww" b ="xxxxyyyyabklmopq" longest(a, b) -> "abcdefklmopqwxy"

a = "abcdefghijklmnopqrstuvwxyz" longest(a, a) ->"abcdefghijklmnopqrstuvwxyz" ```

my solution:

import string
from pandas import Series
def longest(a,b):
c1 = a + b
c2 = list(c1)
c3 = Series(c2)
c4 = c3.unique().tolist()
c5 = sorted(c4)
c6 = ''.join(c5)
return c6

best solution from others:

def longest(a1, a2):
return "".join(sorted(set(a1 + a2)))

No.4

topic:Categorize New Member

instruction:The Western Suburbs Croquet Club has two categories of membership,Senior and Open. They would like your help with an application form that willtell prospective members which category they will be placed.

To be a senior, a member must be at least 55 years old and have ahandicap greater than 7. In this croquet club, handicaps range from -2 to +26;the better the player the lower the handicap.

example:

my solution:

def openOrSenior(data):
a = []
for i in data:
if i[0]>54 and i[1]>7:
a.append('Senior')
else:
a.append('Open')
return a

best solution from others:

def openOrSenior(data):
return ["Senior" if age >= 55 and handicap >= 8 else "Open" for (age, handicap) in data]

No.5

topic: Array.diff

instruction:your goal in this kata is to implement an difference function, which subtracts one list from another.

example:


my solution:

def array_diff(a, b):
diff = []
for i in a:
if i not in b:
diff.append(i)
return diff

best solution from others:

def array_diff(a, b):
return [x for x in a if x not in b]

No.6

topic:Mumbling

instruction:This time no story, no theory.

example:

my solution:

def accum(s):
b = list(s)
i = 0
for j in b:
b[i] = b[i] * (i+1)
i = i+1
a = list(map(lambda x: x.capitalize(),b))
c = '-'.join(a)
return c

best solution from others:

def accum(s):
return '-'.join((a * i).title() for i, a in enumerate(s, 1))

No.7

topic:Multiples of 3 or 5

instruction:If we list all the natural numbers below 10 that are multiples of 3or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.Finish the solution so that it returns the sum of all the multiplesof 3 or 5 below the number passed in.

note:If the number is a multiple of both 3 and 5, only count it once.

my solution:

def solution(number):
a = []
j = 3
while j<number:
if j%3==0 or j%5==0:
a.append(j)
j = j + 1
return sum(a)

best solution from others:

def solution(number):
return sum(x for x in range(number) if x % 3 == 0 or x % 5 == 0)

在8级的时候,做7级题甚至6级题,能快速升级到7级。知识点总结:

1. type和instance判断数据类型

2. 遍历list的方法,list切片知识,如何读取两个list中的非交集

3. str转list,list转series数据,array转list(array.tolist()),字母如何排序(sorted)

4. set 函数(创建一个无序不重复元素集)

5. 改变字符串的首字母:capital,upper,lower,title

6. join连接字符,split分割字符串

7. 枚举函数enumerate,例如枚举list中的索引和元素

8. 如何跳出嵌套循环(写个def,用return)

9. try和except的使用

10. lambda函数使用

感受:

8级到7级的晋升路上,主要涉及的python的数据结构相关的基础知识点。而python的数据结构知识是在一年前学习的,零零落落已经忘得差不多了,做题目的时候基本靠谷歌知识点。在codewar做题的时候,貌似答案没有通过,是无法看到其他人的答案的。在通过答案后,再看其他人的解法,常常有眼前一亮的感觉。

codewar代码练习1——8级晋升7级的更多相关文章

  1. codewar代码练习2——7级晋升6级

    7级晋升到6级的过程中以做6级题以及以前未完成的题目为主,一般选择算法题或者基础题.相比之前从8级升级7级(参见此博客:http://blog.csdn.net/m0_37324740/article ...

  2. 行为级和RTL级的区别(转)

    转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...

  3. CSS 各类 块级元素 行级元素 水平 垂直 居中问题

    元素的居中问题是每个初学者碰到的第一个大问题,在此我总结了下各种块级 行级 水平 垂直 的居中方法,并尽量给出代码实例. 首先请先明白块级元素和行级元素的区别 行级元素 一块级元素 1 水平居中: ( ...

  4. 学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

    一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨 ...

  5. 51nod图论题解(4级,5级算法题)

    51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...

  6. js input复选框选中父级同时子级也选中

    js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...

  7. 操作系统学习笔记5 | 用户级线程 && 内核级线程

    在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...

  8. [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁

    注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...

  9. MySQL行级锁,表级锁,页级锁详解

    页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...

随机推荐

  1. Struts2学习三----------Action搜索顺序

    © 版权声明:本文为博主原创文章,转载请注明出处 Struts2的Action的搜索顺序 http://localhost:8080/path1/path2/student.action 1)判断pa ...

  2. JavaScript 作用域链图具体解释

    <script type="text/javascript"> /** * 作用域链: */ var a = "a"; function hao94 ...

  3. 使用python处理实验数据-yechen_pro_20171231

    整体思路 1.观察文档结构: - 工况之一 - 流量一28 - 测点位置=0 -测点纵断面深度-1 -该点数据Speedxxxxxxxx.txt -测点纵断面深度-2 -测点纵断面深度-3 -... ...

  4. Linux - 配置SSH免密通信 - “ssh-keygen”的基本用法

    目录 1 什么是SSH 2 配置SSH免密登录 2.1 安装必需的软件 2.2 ssh-keygen创建公钥-私钥对 2.3 ssh-copy-id把A的公钥发送给B 2.4 在A服务器上免密登录B服 ...

  5. ThinkPHP3.1在多数据库连接下存储过程调用bug修正

    最近使用ThinkPHP3.1进行一个项目的开发,由于该项目需要连接多台不同的数据库,所以使用如下配置方法: <?php return array( //'配置项'=>'配置值' //数据 ...

  6. 【Selenium+Python Webdriver】报错之:TypeError: user_login() missing 1 required positional argument: 'self'

    先贴一下源码: base.py文件如下: from selenium import webdriver class Page(object): ''' 页面基础类,用于所有页面的继承 ''' rb_u ...

  7. 05 redis中的Setbit位图法统计活跃用户

    一:场景=>>>长轮询Ajax,在线聊天时,能够用到 Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活 ...

  8. python 基础 2.7 range与xrange的区别

    #/usr/bin/python #coding=utf-8 #@Time :2017/10/25 19:22 #@Auther :liuzhenchuan #@File :range与xrange的 ...

  9. 【BZOJ2457】[BeiJing2011]双端队列 贪心+模拟

    [BZOJ2457][BeiJing2011]双端队列 Description        Sherry现在碰到了一个棘手的问题,有N个整数需要排序.        Sherry手头能用的工具就是若 ...

  10. 基于live555实现的RTSPServer对底层进行性能优化的方法

    在博客<EasyIPCamera高性能摄像机RTSP服务器RTSPServer解决方案>我介绍了基于live555实现的一套RTSPServer功能组件,当时开发者经过几个月的调试,已经将 ...