0 前言

最近兄弟们在群里讲话总喜欢用缩写,让人看不懂,鉴于大家都“不说人话”的行为,我决定也不当人了,于是写了个中英文转摩斯密码的小程序“报复回去”。(打不过必须加入)

1 程序原理

第一步:要求用户选择模式【文字转code】或【code转字母】

第二步:【文字转code】

1.读取用户输入的句子,转换成字符串

2.顺序读取字符串,判断是否为中文

如【是】中文,调用 pypinyin 库,将汉字转为拼音

如【不是】中文,则保留原值

3.将处理后的字符串与【字母-摩斯码】转换表对照,在表中则进行转换,不在则保留原值,如遇空格则用 “/” 以做分隔。

【文字转code】

1.读取用户输入的摩斯码

2.顺序读取摩斯码,与【摩斯码-字母】转换表对照,在表中则进行转换,不在则保留原值,如遇 “/” 则用 空格 以做分隔。

2 上代码

1.建立字典

import pypinyin # 给字典赋值
# 字母转码
dict1 = {'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': '----.'
}
# 码转字母
dict2 = dict(zip(dict1.values(),dict1.keys()))

2.定义函数

# 中文转拼音
def chinese_to_pinyin():strs = input("输入一句话:").strip().lower()temp = ''for _char in strs:if '\u4e00' <= _char <= '\u9fa5':result1 = pypinyin.pinyin(_char, style=pypinyin.NORMAL)result2 = [i[0] for i in result1]result3 = ''.join(result2[:])temp += result3 + ' 'else:temp += _char return temp# 文字转码
def encode(words):for letter in words:if letter in dict1:print(dict1[letter], end=' ')else :if letter == ' ':print('/',end=' ')else:print(letter, end=' ')print()# 码转文字
def decode():codes = input("输入电码:").strip().split(" ")for sign in codes:if sign == '/':print(' ',end='')else:if sign in dict2:print(dict2[sign], end='')else:print(sign, end='')print()# 主函数
def main():    while 1:choice = input("文字转码[0] or 码转字母[1]。输入[0/1]")if choice == '0':words = chinese_to_pinyin()encode(words)elif choice == '1':decode()else:break

3.输入

if __name__=="__main__":main()

3 运行效果

输入0,

随便写句话:我的室友都是人才,说话又好听。

再输入1,把刚才转换好的摩斯码 粘贴进去

转汉字还没实现,拼音勉强能用。

4 使用须知

翻看摩斯码转换表可以发现,摩斯码由点和划线组成,另外编程时我们用斜杠(/)和空格进行互相转换,所以使用程序时应避免使用英文的句点、短横、斜杠(.,-,/)。像使用中字母e 对应一个点(.),转换时句点会直接就读成字母e。(实际上除了字母和数字,符号也是有对应编码的,嫌累就没搞,我是懒惰虫-_-)

5 参考

摩尔斯电码转换的小程序(python编写)

python判断字符串为中文

封面 摩斯密码对照表(维基百科上的)

用python写的,一个中英文转摩斯电码小程序相关推荐

  1. python写的一个-批量下载股票年报的小工具

    python写的一个-批量下载股票年报的小工具 from urllib import request import requests import os import openpyxl# print( ...

  2. 如何用Python快速实现一个垃圾分类APP【附带微信小程序】

    嗨害大家好鸭!我是小熊猫❤ 今天这篇文章主要介绍的是: 如何利用现有的工具来实现一个垃圾分类的应用 有什么python相关报错解答自己不会的.或者源码资料/模块安装/女装大佬精通技巧 都可以来这里:( ...

  3. 摩斯电码-打码机练习-微信小程序项目开发入门

    这是一个对摩斯电码小程序项目的开发步骤详解,用于摩尔斯电码打码练习,适合新手练习,对摩尔斯电码很感兴趣,相信掌握以后就可以使用手电筒发射光信号了,只要远处有人能看到,以约定的摩斯电码翻译就会明白,有意 ...

  4. 只要功夫深,菜鸟也能写出细节满满的古茗点单小程序

    前言 写在项目前的话: 临近期末了,各学科纷纷结课,随之而来的是各个课设的纷至沓来.俗话说得好,大学生的生活前五个月是温水泡脚,那么最后一个月的就是将前五个月泡脚的水喝下去.作为一个平日里摸鱼摸惯的摸 ...

  5. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  6. 用 python 写了一个日记本

    写一个随机任务抽取器 一.前言 二.逻辑构思 2.1 目标实现 2.2 搭建开发环境 2.3 Pyinstaller 打包 三.效果展示 3.1 初始化和添加日记 3.2 查看日记 3.3 删除日记 ...

  7. python卖水果_小姨开水果店的,所以今天用Python写了一个水果店小系统!

    原标题:小姨开水果店的,所以今天用Python写了一个水果店小系统! 前言 今天晚上才刚下班,小姨就提了我最爱吃的榴莲过来,说不吃就坏了. 我一眼就看破了她的用意,哈哈哈 我这个小姨也是一起长大的,她 ...

  8. 用python写的一个简易的云音乐播放器

    本人最近在学习python,在看了一些教程后,用python写了一个简单的云音乐播放器,下面把主要代码贴上来,其中用到了github上他人写的一个汉字转拼音的库,大家可以在github上找到. #co ...

  9. 用python写了一个简易的记账软件,后期有可能更新!

    记账程序由来 曾经在iOS14的快截指令中写了一个快捷指令用来记账,但是由于快捷指令的限制,只能把数据记录到备忘录或者numbers,数据的迁移性很差.所以最后干脆用python写了一个程序 程序介绍 ...

  10. 用Python写了一个电子考勤系统!

    今天给大家分享一个比较有意思的Python应用,用 Python 写了一个电子考勤系统,源码已在文章全部给出,记得点赞收藏哦- 项目简介 学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应 ...

最新文章

  1. 大家一起学面向对象设计模式系列Chapter 02 软件设计的基本原则
  2. 从零开始学python人工智能课程_从零开始学人工智能(12)--Python · 决策树(零)· 简介...
  3. 『中级篇』Dockerfile详解(17)
  4. 优酷 米兔机器人_小米(MI)米兔故事机智能故事机机器人智能机器人儿童早教机...
  5. 数组的去重-----------------------来自大牛的讲解
  6. Unitest框架的使用(四)HTMLTestRunner输出测试报告
  7. P1020 导弹拦截 dp 树状数组维护最长升序列
  8. 对比Windows 8模拟器(Simulator)和Windows Phone仿真器(Emulator)
  9. ug建模减速器_UG齿轮减速器建模方法
  10. js 随机选取动画_Three.js + GreenSock 模拟简单随机动画
  11. eXosip注册函数与使用说明
  12. 如何应对微信群舆情?
  13. openssl1.1.1下载地址
  14. 如何防止数据库的编码格式跟项目编码格式不一致产生乱码, 怎么让数据库的编码格式跟项目编码格式保持一致
  15. vb.net 窗体接收键盘事件_不用100就能够买到全键盘的无线键鼠套装,双飞燕FG1010魅力依旧...
  16. 沈阳大学计算机李华,计算机自适应考试曝光率控制-数学专业毕业论文.pdf
  17. 【Derivation】任何矩阵都相似与Jordan标准形证明
  18. LLMs:自然语言处理领域—大语言模型的涉及四大技术领域(TL/USL/PT+Fine/Seq2Seq)、十大核心组件之详细攻略
  19. spring在项目启动时就执行特定方法
  20. linux配置can驱动

热门文章

  1. c语言tc2.0编译器下载,c语言tc2.0下载
  2. 东汉十三州以及各个郡的说明
  3. 小米摄像头共享显示服务器错误6,小米摄像头
  4. yui3学习(-)简单介绍
  5. YUI3学习(一)---入门
  6. 服务器提权常见方法介绍
  7. advanced部署vsto到wps-兼容office和wps
  8. 医药行业数据分析软件(含非付费)--对比分析
  9. 全自动解密解码神器 — Ciphey
  10. EP100触发CAN中断但无法读取报文