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制作英语字典_如何在Pyth
- 下一篇: python中str和int区别_Pyt