【python解题笔记20210316】CodeWars:Decode the Morse code
题目
内容:编写一个函数,入参为莫斯密码,出参为解析后的字符串
链接:https://www.codewars.com/kata/54b724efac3d5402db00065e/train/python
截图:
解题
思路:
1、由于传入的入参前后可能有空格,需要进行前后空格过滤。使用strip()方法。
2、莫斯密码的规则是,不同的单词使用3个空格分隔,不同的字母使用1个空格分隔。需检测3个空格、1个空格,分隔字符串为列表,使用split(' ')方法;
3、分隔传入的莫斯密码到字母级别后,使用MORSE_CODE['.--']方法解析出每个字母;
4、将解析成的每个字母,通过append函数追加到空列表中;
5、由于上述得到的结果还是以每个单词为维度的列表,需使用join()方法将列表转换成字符串;
结果:
源码:
def decodeMorse(morse_code): # ToDo: Accept dots, dashes and spaces, return human-readable message word=morse_code.strip().split(' ') #先过滤1、前后的空格,使用strip();2、传入莫斯密码的单词分隔符,即三个空格,使用split(' ') print(word) resultcharacter=[] #接收解析字符串 for i in word: #此时的i已经是一个单词了,word则为多个单词的列表 character=i.split(' ') #过滤1个单词中的空格,过滤传入莫斯密码的字母分隔符,即单个空格 print(character) for j in character: resultcharacter.append(MORSE_CODE[j]) #莫斯解密已经分隔好的字母,并追加到空列表中 pass resultcharacter.append(' ') #每1个单词后面追加1个空格 pass print(resultcharacter) resultword=''.join(resultcharacter).strip() #将列表形式的内容,通过join方法转换成字符串,并且通过strip方法去掉最后多余的空格 print(resultword) return resultword
知识点
1、strip()函数用于字符串头部和尾部的指定字符串,默认为空格或换行符。
2、split()函数的用法是拆分字符串,然后把分割之后的字符串放到一个列表里并返回。默认情况下是根据换行符"\n"和空格" ",以及“\t”进行分割。
3、append()函数用于在列表末尾添加新的对象。
4、join()函数用于将序列中的元素以指定的字符连接生成一个新的字符串
参考资料:
https://www.cnblogs.com/geeksongs/p/13050175.html
https://www.runoob.com/python/att-list-append.html
https://www.runoob.com/python3/python3-string-join.html