python find函数 和index的区别_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
在练习日4中,小鱼给大家讲述了神秘的ASCII码编译及解密过程. 在ASCII码中,字符与十进制数字的互相转换是通过 ord()函数和chr()函数。
今天小鱼要给大家介绍另一种在影视剧、侦探小说中更是鼎鼎大名的密码--摩斯密码。
莫斯密码,英文叫做Morse code,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个字符之间短的停顿、每个词之间中等的停顿以及句子之间长的停顿。下图为摩斯密码对照表:
现在我们将26个英文字母对应摩斯密码表,如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
我们再将26个英文字母对应的写到一个字符串中:
"abcdefghijklmnopqrstuvwxyz"
我们来试一试吧!
小鱼提示:
在摩斯密码中,编译、解密的过程就是索引指令中字母在字母表中的对应位置,根据这个位置索引在摩斯密码表中的对应位置。
第一步,我们把每一个单词从单词列表中取出来,使用 遍历 基础代码块。
第二步,把每一个单词中的字母在字母串中所对应的位置取出来,定义为word_index,对应letter_str.index(r)。
第三步,根据位置信息,再到摩斯密码表中取出来它的密码。
第四步,把最终的密码拼接起来,打印出来即可。
补充知识:index()
Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
str.index(str, beg=0, end=len(string))str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
index( )相当于索引功能的反向操作:索引是根据位置找元素,而index( )是根据元素找位置。
解题方法:
morse_code_list = [".-","-...","-.-.","-..",".","..-.",
"--.","....","..",".---",
"-.-",".-..","--","-.","---",".--.",
"--.-",".-.","...","-","..-","...-",
".--","-..-","-.--","--.."]
letter_str = "abcdefghijklmnopqrstuvwxyz"
word_list = ["abc", "cba"]
result = ""
for i in word_list:
for r in i:
# 取出来每一个字母在letter_str中的位置,根据元素找位置,用Index()
word_index = letter_str.index(r)
# 根据取出来的位置,从morse_code_list获取到摩斯密码值,根据位置找元素,用索引
morse_code = morse_code_list[word_index]
result = result + morse_code + "|"
# 打印结果
print(result)
在ASCII码和摩斯密码的转化过程中,核心点在于它们都存在转换的逻辑也就是编译、解密遵循的规则。
在ASCII码中,这个规则 ord()函数和chr()函数,只要有指令,就可以把指令拆分,并逐一通过函数进行转换。
在摩斯密码中,这个规则就是索引指令中字母在字母表中的对应位置,根据这个位置索引在摩斯密码表中的对应位置。这与ASCII码的规则是有本质不同的。
因此,当规则遵循位置对应时,我们应该想到列表的定义:一系列按照特定顺序排列的元素的数据类型。利用列表元素的索引来实现需求。
也由此我们可以抽取 根据 一个元素的在某个列表(这个列表中必须包含这个元素)的索引位置 对应到另一个列表(这个列表中不一定包含这个元素)元素 的基础代码块。
一个元素: r
列表1=['abckdahfsdl r ksdf']
列表2=[123413534523451341341]
对应位置=列表1.index(r) #根据元素找位置,用Index()
所求元素=列表2[对应位置] #根据位置找元素,用索引
听完小鱼的介绍,是不是觉得摩斯密码也很简单呢?
相信你已经能编译和解密出摩斯密码,成为一个特工了。快试试吧。
python find函数 和index的区别_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...相关推荐
- python中if和elif的区别_浅谈对python中if、elif、else的误解
今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...
- C语言函数指针和返回指针值的函数
一.用函数指针变量调用函数 一个函数,在编译的时候 ,系统会给这个函数分配一个入口地址,这个入口地址就称为函数的指针(地址).既然有地址,那么我们可以定义一个指针变量指向该函数,然后,我们就可以通过该 ...
- python for和while的用法区别_详解python while 函数及while和for的区别
1.while循环(只有在条件表达式成立的时候才会进入while循环) while 条件表达式: pass while 条件表达式: pass else: pass 不知道循环次数,但确定循环条件的时 ...
- python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
在练习日4中,小鱼给大家讲述了神秘的ASCII码编译及解密过程. 在ASCII码中,字符与十进制数字的互相转换是通过 ord()函数 和 chr()函数. 今天小鱼要给大家介绍另一种在影视剧.侦探小说 ...
- range函数python2和3区别_【后端开发】range函数python2和3区别
range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start + step, start + 2 * step, ...]结构的整数序列: py2中的range()函数用法: ...
- 语法和c区别_【20200925】Python基本语法
介绍 介绍 Python这种脚本语言福哥已经给大家介绍过了,现在童鞋们应该已经会安装python的开发环境了,接下来我们需要针对python语言进行一个系统的学习. 首先学习一门编程语言最先要学习的是 ...
- python爬虫进程和线程的区别_熬了两个通宵写的!终于把多线程和多进程彻底讲明白了!...
我们知道,在一台计算机中,我们可以同时打开许多软件,比如同时浏览网页.听音乐.打字等等,看似非常正常.但仔细想想,为什么计算机可以做到这么多软件同时运行呢?这就涉及到计算机中的两个重要概念:多进程和多 ...
- python数字类型的分类和区别_讨论python的数据类型的区别
python很重要的的那几个数据类型:字符串,列表,字典,元组,他们之间重要的区别的是什么?能否举几个例子来说明下! 共同点: 1.它们都是py的核心类型,是py语言自身的一部分. 核心类型与非核心类 ...
- python创建字典和包的区别_[Python]-10-模块与包
引言 这篇文章介绍python中模块和包的概念. 文章目录 0×1.如何导入模块 简单的讲,模块就是可以扩展python功能的一些对象的集合,可以是类,方法,或者简单的数值对象,他们被存放在一个或多个 ...
最新文章
- python字符串和字典
- 【科普】Web(瓦片)地图的工作原理
- 大量更新后数据膨胀_段合并的原理探寻
- c语言int 转bool_C++代码实现逆波兰式_C 语言
- linux go missing git command,安装beego出现go: missing Git command
- 原始图像扩展_Resize Sense for Mac(图像处理软件)
- Nginx (Install)
- 电商网站商品图片放大镜实现
- 解码器输出PSNR为0表示什么
- cad导出pdf_CAD如何批量导出PDF文件?别说PDF了!GIF我都能给你导出来
- Docker的概念及基本指令学习(从安装、管理、核心概念到docker file 、 服务编排、集群)
- 计算机错误1327,Win7系统电脑安装软件失败并提示错误1327解决办法
- java 银行卡号_java银行卡号判断银行
- KALI 2020.4 搭建双网卡渗透环境
- 听说学习是件苦差事——Linux第一天
- ARM模拟器-skyeye(天目)的安装和使用!
- Web 动画帧率(FPS)计算
- androidfilehost.com下载方法
- 【苦练基本功】代码整洁之道 pt2(第4章-第6章)
- 计算机安全原理与实践第三版答案,计算机安全: 原理与实践 : 第3版
热门文章
- 006_全局异常处理器
- 006_JavaScript注释
- 033_CSS相对定位
- Java十个数比大小循环_java for循环完成输出(1,1,2,3,5,8,13,21,34...)求出第10个数是多少?...
- android viewflipper图片轮播,使用ViewFlipper实现图片轮播
- python绘制三维地形shade(vert_exag)参数_Python的地形三维可视化Matplotlib和gdal使用实例...
- wireshark读写pcap文件_PCAP-file-analysis 利用wireshark捕获tcp ip数据包和pcap文件分析 - 下载 - 搜珍网...
- 第二章: ORacle 自带用户讲解、oracle的开发工具、oracle客户端的配置、以及常见连接报错
- 如何查linux系统安装时间查询,Linux系统怎样查询当前的系统时间
- html怎么设置页面自适应屏幕大小,网页设计设置页面自适应屏幕宽度