我正在编写一个小函数,它检查输入的字符串是否为morse代码。该函数应该执行类似于"If "-“或”的操作,只在Inputted_string中执行:“但我似乎无法找到在Python3上执行唯一一步的方法。我目前的实现方式是非常混乱,而不是非常Pythonic
if "-" in message:
    # message might be morse code so check even more
        if "." in message:
            # Message IS morse code so return true
            return True
        else:
            # TODO you can use a REGEX for the below things
            if '--' in message:
                # if the messsage contains only hyphens, then check to see if
                # message contans hyphen only morse code by checking all hyphen
                # only morse code against message
                return True
            elif '-----' in message:
                # if message contains 0 in morse code, return True
                return True
    if "." in message:
        # message might contain morse code
        if "-" in message:
            # message IS morse code.
            return True
        else:
            # check to see if message is dots only morse code
            # TODO you can use a REGEX for the below things
            if ".." in message:
                # message IS Morse Code
                return True
            elif "..." in message:
                # message IS Morse Code
                return True
            elif "....":
            # message IS Morse Code
                return True
        # if dots or dash not in message, return none
        return("Message has no hyphens or full stops")当我粘贴时,格式略有偏离,但这是一般的要点。当它检查消息是否为“--”或“.”时等等,这是因为一些摩尔斯电码字母只是那些牧师,但我相信有一个更容易的方法来解决这个问题!
发布于 2015-09-23 21:07:10
检查message的每个元素是否位于正确的字母表中:
if all(c in ['-', '.'] for c in message):或将消息还原为一组:
if set(message) <= set(['.', '-'])或者使用正则表达式:
if re.match('[-.]*$', message):https://stackoverflow.com/questions/32749428
复制相似问题