说明:以下内容均来自codewars网站,列举的试题我都做过且通过,并以此记录来学习python。
 
1,需求:将大小写互相转换,非字母的字符保留
我的代码:
 def to_alternating_case(string):
#your code here
result = ''
for i in range(len(string)):
if string[i].isupper():
result += string[i].lower()
elif string[i].islower():
result += string[i].upper()
else:
result += string[i]
return result
示例代码1:
 def to_alternating_case(string):
return ''.join([c.upper() if c.islower() else c.lower() for c in string])
示例代码2:
 def to_alternating_case(string):
return string.swapcase()
 
测试代码:
 Test.assert_equals(to_alternating_case("hello world"), "HELLO WORLD")
Test.assert_equals(to_alternating_case("HeLLo WoRLD1234"), "hEllO wOrld1234")
Test.assert_equals(to_alternating_case("String.prototype.toAlternatingCase"), "sTRING.PROTOTYPE.TOaLTERNATINGcASE")
Test.assert_equals(to_alternating_case(to_alternating_case("Hello World")), "Hello World")
Test.it("should work for the title of this Kata")
title = "altERnaTIng cAsE"
title = to_alternating_case(title)
Test.assert_equals(title, "ALTerNAtiNG CaSe")
title = "altERnaTIng cAsE <=> ALTerNAtiNG CaSe"
总结:对基础仍不熟练,缺少主动性练习
 
2、需求:识别字符串中数字化的字符,并将其改正。
例如,处理一下错误
  • S is misinterpreted as 5
  • O is misinterpreted as 0
  • I is misinterpreted as 1
测试方法:
Test.assert_equals(correct("L0ND0N"),"LONDON");
Test.assert_equals(correct("DUBL1N"),"DUBLIN");
Test.assert_equals(correct("51NGAP0RE"),"SINGAPORE");
Test.assert_equals(correct("BUDAPE5T"),"BUDAPEST");
Test.assert_equals(correct("PAR15"),"PARIS");
 
我的代码:
 def correct(string):
for i in range(len(string)):
if "" in string:
string = string.replace('','S')
elif "" in string:
string = string.replace('','O')
elif "" in string:
string = string.replace('','I')
return string
 
示例代码1:
def correct(string):
return string.translate(str.maketrans("", "SOI"))
 
解析:
maketrans 和 translate 函数是进行字符串字符编码的常用方法
maketrans用法
string.maketrans(from, to) #制作翻译表
translate 用法
string.translate(s, table[, deletechars]) str.translate(table[, deletechars]) unicode.translate(table)
参数
  • table -- 翻译表,翻译表是通过 maketrans() 方法转换而来。
  • deletechars -- 字符串中要过滤的字符列表。
返回值
返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射 
实例:
 import string
map = string.maketrans('', 'abc')
s = ""
string.translate(s,map) #'abcc45'
s.translate(string.maketrans('', 'aaa'), '') #'aaaa4'
s.translate(map) #'abcc45'
s.translate(string.maketrans('', 'aaa')) #'aaaa45'
示例代码2:
 def correct(string):
return string.replace('','I').replace('','O').replace('','S')
3、需求:得到一组数字,返回所有正数的总和。
Example [1,-4,7,12] => 1 + 7 + 12 = 20
提示:如果数组为空,和默认为0
 
我的代码;
 def positive_sum(arr):
# Your code here
sum = 0
if arr == []:
return 0
else:
for i in arr:
if i >0:
sum = sum + i
return sum
 #示例代码1:
def positive_sum(arr):
return sum(x for x in arr if x > 0) #示例代码2:
def positive_sum(arr):
return sum(filter(lambda x: x > 0,arr)) #示例代码3:
def positive_sum(arr):
return sum(map(lambda x: x if x > 0 else 0, arr))
总结:因没仔细看需求,瞄了一眼就以为是把列表中的每个数求和,导致因为存在负数使得求和结果和测试的期望值不同,为了解决这个不必要的问题浪费了许多时间。

Codewars笔记的更多相关文章

  1. Codewars练习笔记·1 - 6.23

    Codewars地址:https://www.codewars.com/ 笔记资料来源:JavaScript高级程序设计. 欢迎和大家一起来讨论~   基础练习(1):   我的解答为: class ...

  2. codewars 题目笔记

    原题: Description: Bob is preparing to pass IQ test. The most frequent task in this test is to find ou ...

  3. JavaScript练习笔记整理·2 - 6.24

      Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~   基础练习(1):   我的解答为: function isIsogram(str){ if(s ...

  4. JavaScript练习笔记整理·1 - 6.23

    练习平台Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~╭( ・ㅂ・)و ̑̑   基础练习(1):   我的解答为: class SmallestIn ...

  5. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  8. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  9. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

随机推荐

  1. Spring Boot REST

    资源(Resources) 所谓资源,就是网络上一个实体,或者是网络上一个具体信息.他可以是一段文本,一张图片,一种服务,总之是一个具体的实体.可以用一个URI(统一资源定位符)指向它,每种资源对应一 ...

  2. Spring各版本源码下载

    spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...

  3. P2245 星际导航

    题目描述 sideman 做好了回到 Gliese星球的硬件准备,但是 sideman 的导航系统还没有完全设计好.为了方便起见,我们可以认为宇宙是一张有 N 个顶点和 M 条边的带权无向图,顶点表示 ...

  4. POJ 3294 Life Forms [最长公共子串加强版 后缀数组 && 二分]

    题目:http://poj.org/problem?id=3294 Life Forms Time Limit: 5000MS   Memory Limit: 65536K Total Submiss ...

  5. programming-languages学习笔记--第10部分

    programming-languages学习笔记–第10部分 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.sr ...

  6. (第一章)改善JavaScript,编写高质量代码。

    根据<编写高质量代码改善JavaScript程序的188个建议>这本书,来记录我目前所了解的建议方式. 建议1:警惕Unicode乱码 根据ECMA标准规定JavaScript语言可以使用 ...

  7. tuple元组详解

    这次要讲的内容是:c++11中的tuple(元组).tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多 ...

  8. Spring源码分析(十一)bean的加载

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 经过前面的分析,我们终于结束了对XML配置文件的解析,接下来将会面临更大 ...

  9. openstack 镜像初始化root登录密码

    在创建虚拟机的时候 如下: #!/bin/sh passwd root<<EOF engine engine EOF huangyi替换成你的密码 注意下面的配置驱动一定要勾上,不然虚拟机 ...

  10. Angular动态表单生成(四)

    ng-dynamic-forms实践篇(下) 我们接着上篇,先把小目标中的所有字段都定义出来 这部分就是苦力活儿了,把KendoUiComponent中的formModel完善即可: formMode ...