摩斯码生成器
摩斯码生成器(模块:textEx,所在文件名 text_hw.py,Level:★)
利用 Python 实现摩斯码符号生成,完成函数:
(1)摩斯码生成函数:
函数原型:def morse_code(usr_str)
参数 usr_str:字符串,需要转换为摩斯码的字符串。
返回值:输出 usr_str 对应的摩斯码字符串,用 . 代表点, - 代表破折号,点与点、破折号与破折号之间、点与破折号之间为一个空格,字符间为三个空格,单词之间为七个空格。
注意输出的摩斯码首尾不含空格。
参考网站:https://en.wikipedia.org/wiki/Morse_code
代码如下(函数引用)
# 题目:摩斯码生成器
def morse_code(usr_str):
CODE = {'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': '- - - - .'
}
list1=''
list2=''
list3 = ''
new = False
fir = True
for n in usr_str:
n = str.upper(n)
if n not in CODE.keys():
new = True
elif new:
list1 = list1 + ' '
new = False
if not new:
if fir:
list3 = (CODE[str.upper(n)])
list1 =list1 + list3
fir = False
else:
list2 = (' ' + CODE[str.upper(n)])
list1 =list1 + list2
return list1