I am a teacher!

导航

习题解析之:摩尔斯电码转换

【问题描述】

摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

编写程序,把输入的英文句子转换成摩尔斯电码并输出电码字符串。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

本题只需要对英文字母(不区分大小写)进行编码转换,其他字符原样输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

下面列表中为26个英文字母对应的摩尔斯电码。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..']

 image

 示例 

输入:
How are you?
输出:
....---.-- .-.-.. -.-----..-?

【编程思路】

        由于题目对英文字母不区分大小写,因此为方便处理,可以先将输入的英文句子中的所有字母全部转换为小写字母。

        用列表 ls 保存 26 个英文小写字母对应的摩尔斯电码,例如 ls[0] 就是字母 'a' 的摩尔斯电码。

        用循环 for c in s: 遍历输入的英文句子中的每个字符 c,若字符 c 是小写字母,则用 ord(c) 获得其 Unicode 码值,将其减去 97(小写字母 ‘a' 的Unicode 码值为 97),得到其在 26 个小写字母中的序号,按这个序号即可在 ls 列表中取得字符 c(小写字母)的摩尔斯电码。
        编写的源程序如下:

        image

posted on 2025-11-26 15:31  aTeacher  阅读(0)  评论(0)    收藏  举报