zoukankan      html  css  js  c++  java
  • 【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()函数的用法是拆分字符串,然后把分割之后的字符串放到一个列表里并返回。默认情况下是根据换行符" "和空格" ",以及“ ”进行分割。

    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

  • 相关阅读:
    滚动条美化插件 nicescroll
    百度地图api
    Echarts的重点
    3月20号课堂随笔
    循环for语句
    有关一些CSS的基本内容
    HTML基本标签和一些注释的问题
    2018年3月17号的随堂笔记
    03.15补习
    for 的相关用法
  • 原文地址:https://www.cnblogs.com/chooperman/p/14542819.html
Copyright © 2011-2022 走看看