说明:以下内容均来自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. November 19th 2016 Week 47th Saturday

    Nature didn't need an operation to be beautiful. It just was. 自然之美无需刻意而为,其本身即为美. Recently I saw seve ...

  2. Java基础 之软引用、弱引用、虚引用 ·[转载]

    Java基础 之软引用.弱引用.虚引用 ·[转载] 2011-11-24 14:43:41 Java基础 之软引用.弱引用.虚引用 浏览(509)|评论(1)   交流分类:Java|笔记分类: Ja ...

  3. if 的一切

    第一种语法: if 条件: # @引号是为了把条件和结果分开. 结果1 # 一个Tab或者4个空格 @告诉程序满足上面的if条件才会执行结果1结果2 如果条件为真(True),执行结果1,然后执行结果 ...

  4. Windows10 1709正式版WSL安装(以Ubuntu为例)

    因为最近要使用Linux搭服务器,但是用远程的话延迟很烦,用双系统切换很麻烦,用虚拟机又会有点卡,刚好Windows10最近更新了正式版的WSL(windows下的Linux子系统),所以就想尝试一下 ...

  5. FFI (语言交互接口(Foreign Function Interface))

    FFI(Foreign Function Interface)是用来与其它语言交互的接口, 在有些语言里面称为语言绑定(language bindings), Java 里面一般称为 JNI(Java ...

  6. 【洛谷】【堆】P1801 黑匣子_NOI导刊2010提高(06)

    [题目描述:] Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两 ...

  7. Hadoop学习之路(八)在eclispe上搭建Hadoop开发环境

    一.添加插件 将hadoop-eclipse-plugin-2.7.5.jar放入eclipse的plugins文件夹中 二.在Windows上安装Hadoop2.7.5 版本最好与Linux集群中的 ...

  8. 20145203盖泽双 《Java程序设计》第8周学习总结

    20145203盖泽双 <Java程序设计>第8周学习总结 教材学习内容总结 1.java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logge ...

  9. virtualbox+vagrant学习-2(command cli)-11-vagrant PowerShell命令

    PowerShell 格式: vagrant powershell [-- extra powershell args] 这将在主机上打开PowerShell提示符,进入正在运行的vagrant机器. ...

  10. c++——inline内联函数

    1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3;  #define A 3 C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以 ...