【发布时间】:2021-07-10 14:34:02
【问题描述】:
我有一个莫尔斯程序,但单词之间的空格没有显示。有人有什么想法吗?更喜欢最简单的方法
样本输入:
APRIL FOOLS DAY
encode_Morse 函数的输出:
' .- .--. .-. .. .-.. ..-. --- --- .-.. ... -.. .- -.-- '
decode_Morse 函数的输出:
APRILFOOLSDAY
MORSE_CODES={'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':' --.. '}
##Define functions here
def encode_Morse(my_msg):
#my_msg=my_msg.upper()
my_msg_Morse=""
for letter in my_msg:
if letter!=" " and letter not in MORSE_CODES:
my_msg_Morse+="*"
elif letter!=" ":
my_msg_Morse+= MORSE_CODES[letter]
else:
my_msg_Morse+=" "
return my_msg_Morse+""
def decode_Morse(my_msg):
string=""
for word in my_msg.split(" "):
for ch in word.split():
if ch!=" " and ch!="*":
string=string + list(MORSE_CODES.keys())[list(MORSE_CODES.values()).index(" "+ch+" ")]
elif ch==" ":
string+=" "
string=string+""
return string
【问题讨论】:
-
我需要它,因为我需要在莫尔斯字符之间留两个空格
-
如果您的映射
MORSE_CODES根本不使用空格并且您将在转换之外处理它们,那会更简单。 -
@ExplooreX 这毫无意义,我需要在单词之间留四个空格,我告诉你每个字符后面需要两个空格
-
@qwvst 抱歉,请将
string=string+""更新为string=string+" " -
为什么需要那两个空格?
标签: python loops dictionary if-statement morse-code