在字符之间添加单个空格,在单词之间添加多个空格



我有一个字符串到莫尔斯函数,知道吗,我有它,莫尔斯字符之间只有一个空格,如果有多个单词,仍然只有一个空间。如何在每个单词之间留出4个空格,并保持字符之间的单个空格?我添加了编码器ChartoMorse函数

def encodeChartoMorse(text_input):
char=text_input.upper()
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= '*'

return char

def encodeStringtoMorse(text_input):

length=len(text_input)
morse=''
for x in range(0, length):
char= encodeChartoMorse(text_input[x])
morse=morse + ' ' + char
return morse

与许多其他编程语言不同,Python允许您循环遍历单词中字母列表中的元素,而不必使用索引。在这种情况下,您需要在文本中的单词上循环(在编码的单词之间放4个空格(,对于每个单词,在每个字母上循环(编码的字母之间放1个空格(。最后,Python字典是将键(如字母(映射到值(如莫尔斯码(的有效方法,而无需求助于if-then-else逻辑。

编辑:根据下面的评论,当我在上面说";循环文本中的单词";这是一个公平的问题,问是如何做到的?在我的示例中,我使用Python的split()字符串方法将文本字符串分解为单独的单词。它试图通过寻找空格(默认情况下(来分割字符串,从而从字符串中创建一个子字符串列表。生成的列表为我们提供了一种方便的方法,可以在编码过程中循环文本中的单词。

示例:

letter_to_morse = {
"A": ".-",
"B": "-...",
"C": "-.-.",
"D": "-..",
"E": ".",
"F": "..-.",
"G": "--.",
"H": "....",
"I": "..",
"J": ".---",
"K": "-.-",
"L": ".-..",
"M": "--",
"N": "-.",
"O": "---",
"P": ".--.",
"Q": " --.-",
"R": ".-.",
"S": "...",
"T": "-",
"U": "..-",
"V": "...-",
"W": ".--",
"X": "-..-",
"Y": "-.--",
"Z": "--..",
}
def encode_text_to_morse(text):
text_list = text.upper().split()
for word in text_list:
morse_word = []
for letter in word:
morse_word.append(letter_to_morse.get(letter, "*"))
char_space = " "
word_space = "    "
print(char_space.join(morse_word), end=word_space)

encode_text_to_morse("The quick brown fox jumps over the lazy dog")

输出:

- .... .      --.- ..- .. -.-. -.-     -... .-. --- .-- -.     ..-. --- -..-     .--- ..- -- .--. ...     --- ...- . .-.     - .... .     .-.. .- --.. -.--     -.. --- --.

最新更新