使用reverse函数反转部分,使字符串的最后一部分成为另一个字符串的第一部分

2024-04-29 06:46:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这个程序将英语打印成摩尔斯电码,然后我尝试在下面的主程序中反转摩尔斯电码。我提供了一个示例输入,其中包含我得到的和预期的输出。基本上,我不希望每个./-都被颠倒,我只需要最后一个莫尔斯字符是第一个,第四个是第二个,以此类推

normal morse output:     ....    .    .-..    .-..    ---
reverse output I get:    ---    ..-.    ..-.    .    .... 
expected output reverse: ---    .-..    .-..    .    ....
def encodeChartoMorse(text_input):
      all_caps=text_input.upper()
      length=len(all_caps)
      string=''
      for letter in range(0, length):
        char = all_caps[letter]
        
    
        if (char == "A"):
          char= ".-"
        elif (char == "B"):
          char= "-..."
        elif (char== "C"):
          char= "-.-."
        elif (char == "D"):
          char= "-.."
        elif (char == "E"):
          char= "."
        elif (char == "F"):
          char= "..-."
        elif (char == "G"):
          char= "--."
        elif (char == "H"):
          char= "...."
        elif (char == "I"):
          char= ".."
        elif (char == "J"):
          char= ".---"
        elif (char == "K"):
          char= "-.-"
        elif (char == "L"):
          char= ".-.."
        elif (char == "M"):
          char= "--"
        elif (char == "N"):
          char= "-."
        elif (char == "O"):
          char= "---"
        elif (char == "P"):
          char= ".--."
        elif (char == "Q"):
          char= " --.-" 
        elif (char == "R"):
          char= ".-."
        elif (char == "S"):
          char= "..."
        elif (char == "T"):
          char= "-" 
        elif (char == "U"):
          char= "..-" 
        elif (char == "V"):
          char= "...-"
        elif (char == "W"):
          char= ".--"
        elif (char == "X"):
          char= "-..-"
        elif (char == "Y"):
          char= "-.--"
        elif (char == "Z"):
          char= "--.."
        else:
          char= '*'
        string=string + '    ' + char
    
      return string
    
    def main():
      ##Put your main program here
      text_input=str(input("Enter some text to convert to Morse code: "))
      print (text_input.upper())
      
     
      morse_code=encodeChartoMorse(text_input)
      print(morse_code)
    
      rev_morse=morse_code[::-1]
      print(rev_morse)
    main()

Tags: textinputoutputstringmorse电码maindef
1条回答
网友
1楼 · 发布于 2024-04-29 06:46:49

要反转输出的每个块(即字符),您可以str.split使用空格获取莫尔斯字符,然后反转该列表,然后再次使用空格str.join

def reverse_morse(text):
    return ' '.join(text.split()[::-1])

>>> reverse_morse('.... . .-.. .-..  -')
' - .-.. .-.. . ....'

相关问题 更多 >