我正在制作一个简单的摩尔斯电码转换器,以应对挑战。基本上,给我一个句子,我必须用字典把它转换成摩尔斯电码。我使用了一个基本的for循环,但是一旦我尝试将列表转换为字符串,我发现''.join()
方法完全忽略了morse转换之间的空格
这是我的代码:
def encode_morse(message):
char_to_dots = {
'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': '--..', ' ': ' ', '0': '-----',
'1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..', '9': '----.',
'&': '.-...', "'": '.----.', '@': '.--.-.', ')': '-.--.-', '(': '-.--.',
':': '---...', ',': '--..--', '=': '-...-', '!': '-.-.--', '.': '.-.-.-',
'-': '-....-', '+': '.-.-.', '"': '.-..-.', '?': '..--..', '/': '-..-.'
}
print(message)
message_list = list(message)
morse_output = []
for i in message_list:
if i != ' ':
morse_output.append(char_to_dots.get(str(i)))
else:
morse_output.append(' ')
return ''.join(morse_output)
这是输出:
EDABBIT CHALLENGE
FAILED: Test 1: '.-...--...-.....- -.-......-.-...-...-.--..' should equal '. -.. .- -... -... .. - -.-. .... .- .-.. .-.. . -. --. .'
ERROR: Traceback:
in <module>
File "./frameworks/python/cw-2.py", line 28, in assert_equals
expect(actual == expected, message, allow_raise)
File "./frameworks/python/cw-2.py", line 18, in expect
raise AssertException(message)
cw-2.AssertException: Test 1: '.-...--...-.....- -.-......-.-...-...-.--..' should equal '. -.. .- -... -... .. - -.-. .... .- .-.. .-.. . -. --. .'
正如您所说,您的代码不会生成输出
更换零件
与
解释:
如果您想在字符串(
message_list = list(message)
)的字符上进行迭代,则无需从字符串(message_list = list(message)
)生成列表您需要将字母转换为大写字母(^{),因为您的字典只包含大写字母键
使用dictionary为给定键赋值非常简单,只需将该键添加到dictionary名称(
char_to_dots[i.upper()]
)后面的方括号中即可您需要在转换后的输出中分离单个字母和单个单词-我为字母分隔符(
' '.join(morse_output)
)选择了1个空格,为单词分隔符(morse_output.append(' ')
)选择了2个空格您可以在字典中插入“”:“”来处理空格(因此不需要“if i!=””条件)
输出:
您应该指定要通过空格(
' '
)进行连接。你有没有说' '.join(morse_output)
而不是''.join(morse_output)
相关问题 更多 >
编程相关推荐