“01”滴答“摩尔斯电码”加密解密单个字符

2023-11-05 05:28

本文主要是介绍“01”滴答“摩尔斯电码”加密解密单个字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

“01”替换滴嗒“.-”“摩尔斯电码”字符,加密解密键盘输入的单个字符。


  (本笔记适合熟悉循环和列表的 coder 翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


“01”替换滴嗒“.-”“摩尔斯电码”字符
“摩尔斯电码”加密解密
(加密解密键盘输入的单个字符)


本文质量分:

96
本文地址: blogId

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ “摩尔斯电码”加密解密
    • 1、题目描述
    • 2、算法解析
      • 2.1 次级灰色标题
    • 、完整源码



◆ “摩尔斯电码”加密解密


1、题目描述


  • 题目描述截屏图片
    在这里插入图片描述

题目来源于 CSDN 问答社区提问“输入字符串“摩尔斯电码””



回页目录


2、算法解析


  


2.1 次级灰色标题


  • 不管是编码(加密)还是解码(解密),您都得准备好字典:
    加密字典
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sl3L4to9-1698768532297)(https://img-mid.csdnimg.cn/release/static/image/mid/ask/452112357896178.jpg “#left”)]
    解密字典
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ZEd92wH-1698768532323)(https://img-mid.csdnimg.cn/release/static/image/mid/ask/52140435789614.jpg “#left”)]

  • 代码运行效果截屏图片
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xpjZDX2c-1698768532325)(https://img-mid.csdnimg.cn/release/static/image/mid/ask/225729257896179.jpg “#left”)]

python代码

#!/sur/bin/nve python
# coding: utf-8def setMorse():morseDict = {1: '.----', 2: '..---', 3: '...--', 4: '....-', 5: '.....', 6: '-....', 7: '--...', 8: '---..', 9: '----.', 0: '-----'}myMorse1 = {k: ''.join(['0' if i == '.' else '1' for i in morseDict.get(k)]) for k in range(10)} # 字典解析式通过摩尔斯电码字典解析出0、1组成的“摩尔斯电码”。myMorse2 = {}for i in range(10):if i < 5:myMorse2[i] = '0'*i + '1'*(5-i)else:myMorse2[i] = '1'*(i%5) + '0'*(5-i%5)myMorse3 = {i: '0'*i + '1'*(5-i) if i < 5 else '1'*(i%5) + '0'*(5-i%5) for i in range(10)}#print(f"\n0、摩尔斯电码字典:\n{morseDict}\n\n1、字典解析式从摩尔斯电码字典解析0、1组成的摩尔斯电码:\n{myMorse1}\n\n2、for循环按规律生成0、1组成的摩尔斯电码:\n{myMorse2}\n\n3、字典解析式按规律生成0、1组成的摩尔斯电码:\n{myMorse3}\n")return myMorse3def encode(s):morse = setMorse() # 设置0、1组成的摩尔斯电码字典。s1 = ord(s) # 1、转数字编码。s2 = [morse.get(int(i)) for i in str(s1)] # 2、转“摩尔斯电码”。s30 = [int(i, 2) for i in s2] # 31、转十进制数处理十进制的非可见字符。s3 = [i+31 for i in s30] # +31是为了过滤掉ascii的前32个非可见字符。。s4 = [chr(i) for i in s3] # 4、十进制数转对应编码的字符串。print(f'\n输入字符“{s}”的\n1、数字编码:{s1}\n2、“摩尔斯电码”:{s2}\n3、十进制数:{s30}\n4、密文字符:{s4}')return 'IO'.join(s4) # 5、用“IO”隔开返回密文字符串。def decode(s):deMorse = {v: k for k,v in setMorse().items()} # 生成“摩尔斯电码”解码字典。s1 = s.split('IO') # 1、还原真实密文。s2 = [ord(i)-31 for i in s1] # 2、还原十进制数。s3 = [f'{bin(i)[2:][-5:]:0>5}' for i in s2] # 还原“摩尔斯电码”,注意不足五位前0凑。s4 = [deMorse.get(i) for i in s3] # 还原原文字符串编码数字字符串。print(f"\n解密过程:\n1、拆分真实密文:{s1}\n2、还原十进制数:{s2}\n3、还原“摩尔斯电码”:{s3}\n4、原来原文字符串编码数字字符串:{s4}")return chr(int(''.join(map(str, s4))))if __name__ == '__main__':s = input('\n输入单个字符:').strip()enS = encode(s) # 加密。print(f"\n密文:{enS}")print(f"解密原文:{decode(enS)}")


  • 代码运行效果截屏图片



回页目录


、完整源码

(源码较长,点此跳过源码)



回页首


上一篇:  经典循环命题:百钱百鸡(翁五钱一只,母三钱,小鸡三只一钱;百钱百鸡百鸡花百钱)
下一篇: 

我的HOT博:

  本次共计收集 246 篇博文笔记信息,总阅读量 40.46w,平均阅读量 1644。已生成 16 篇阅读量不小于 4000 的博文笔记索引链接。数据采集于 2023-10-12 05:41:03 完成,用时 4 分 41.10 秒。


  1. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    ( 59262 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    点赞:126   踩 :0  收藏:798  打赏:0  评论:71
    本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-07-03 05:50:55 修改。
  2. 让QQ群昵称色变的神奇代码
    ( 58086 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:24   踩 :0  收藏:83  打赏:0  评论:17
    本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。
  3. pandas 数据类型之 DataFrame
    ( 9173 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:6   踩 :0  收藏:31  打赏:0  评论:0
    本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。
  4. 个人信息提取(字符串)
    ( 7215 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:1   踩 :0  收藏:13  打赏:0  评论:0
    本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。
  5. Python列表(list)反序(降序)的7种实现方式
    ( 7161 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:5   踩 :0  收藏:22  打赏:0  评论:8
    本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。
  6. 罗马数字转换器|罗马数字生成器
    ( 7035 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。
  7. Python字符串居中显示
    ( 6966 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    点赞:1   踩 :0  收藏:7  打赏:0  评论:1
    本篇博文笔记
  8. 斐波那契数列的递归实现和for实现
    ( 5523 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    点赞:4   踩 :0  收藏:2  打赏:0  评论:8
    本篇博文笔记
  9. python清屏
    ( 5108 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    点赞:0   踩 :0  收藏:8  打赏:0  评论:0
    本篇博文笔记
  10. 练习:字符串统计(坑:f‘string‘报错)
    ( 5103 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记
  11. 回车符、换行符和回车换行符
    ( 5093 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:1   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。
  12. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    ( 4943 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    点赞:14   踩 :0  收藏:42  打赏:0  评论:0
    本篇博文笔记
  13. 密码强度检测器
    ( 4323 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。
  14. 练习:生成100个随机正整数
    ( 4274 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    点赞:1   踩 :0  收藏:6  打赏:0  评论:0
    本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。
  15. 我的 Python.color() (Python 色彩打印控制)
    ( 4159 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    点赞:2   踩 :0  收藏:8  打赏:0  评论:0
    本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。
  16. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    ( 4149 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
推荐条件 阅读量突破三千
(更多热博,请点击蓝色文字跳转翻阅)

回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


回页首

◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

这篇关于“01”滴答“摩尔斯电码”加密解密单个字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347708

相关文章

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4