python-摩斯码转换
意义:简单实现摩斯码的破译和生成
代码:
#-*- coding: UTF-8 -*- __author__ = ''
__date__ = '2016/2/2' import pprint
import re chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
codes = """.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-..
-- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --..
.---- ..--- ...-- ....- ..... -.... --... ---.. ----. -----""" dd = dict(zip(chars.lower(),codes.split()))
DD = dict(zip(codes.split(),chars.lower())) #pprint.pprint(DD) def chars2morse(char):
return dd.get(char.lower(),' ') def morse2chars(morse):
return DD.get(morse,' ') while True:
str = raw_input()
x = str.split(' ')
ccc = ''.join(x)
if re.match('^[0-9a-zA-Z]+$',ccc):
print ' '.join(chars2morse(c) for c in ccc)
else:
cc = str.split()
print ' '.join(morse2chars(c) for c in cc)
运行结果:

知识点:
split()
意义:通过指定分割符对字符串进行切片
语法:
str.split(str="", num=string.count(str))
- 参数str:分隔符,默认为空格
- 参数num:分割次数
返回值:返回分割后的字符串列表
实例:
In[2]: str = "I Love Python!"
In[3]: str.split()
Out[3]: ['I', 'Love', 'Python!']
In[4]: str.split(' ',1)
Out[4]: ['I', 'Love Python!']
lower()
意义:转换字符串中所有大写字符为小写
语法:
str.lower()
返回值:返回将字符串中所有大写字符转换为小写后生成的字符串
实例:
In[2]: str = "I Love Python!"
In[5]: str.lower()
Out[5]: 'i love python!'
zip()
意义:Python内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的 list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同
语法:
zip([iterable, ...])
- 参数:任意多个列表
返回值:有元祖组成的列表
实例:
In[6]: a = [1,2,3]
In[7]: b = [4,5,6]
In[8]: c = [7,8,9,0]
In[9]: zip(a,b,c)
Out[9]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
利用*号操作符,可以将list unzip(解压)
In[11]: d = [[1,2,3],[4,5,6],[7,8,9]]
In[12]: zip(*d)
Out[12]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
In[13]: e = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
In[14]: zip(*e)
Out[14]: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
dict()
意义:创建新字典
语法:
dict(iterable, **kwarg)
返回值:返回一个新字典
实例:
#键值对方式构造字典
In[17]: dict(a=1,b=2,c=3)
Out[17]: {'a': 1, 'b': 2, 'c': 3}
#映射函数方式构造字典
In[18]: dict(zip(['a','b','c'],[1,2,3]))
Out[18]: {'a': 1, 'b': 2, 'c': 3}
#可迭代对象方式构造字典
In[19]: dict([('a',1),('b',2),('c',3)])
Out[19]: {'a': 1, 'b': 2, 'c': 3}
get()
意义:返回字典中指定键的值,如果值不在字典中返回默认值
语法:
dict.get(key, default=None)
- 参数key:字典中要查找的键
- default:如果指定键的值不存在时,返回该默认值值
返回值:字典中指定键的值,如果值不在字典中返回默认值None
实例:
In[23]: d = {'a': 1, 'b': 2, 'c': 3}
In[24]: d.get('a')
Out[24]: 1
In[25]: d.get('d','Not Found!')
Out[25]: 'Not Found!'
python-摩斯码转换的更多相关文章
- Javascript实现摩斯码加密解密
原文地址 作者:liaoyu 摩尔斯电码是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母.数字和标点符号,是由美国人萨缪尔·摩尔斯在1836年发明. 每一个字符(字母或数字)对应不同的 ...
- [LeetCode] 804. Unique Morse Code Words 独特的摩斯码单词
International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...
- [LeetCode] Unique Morse Code Words 独特的摩斯码单词
International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...
- uva 508 - Morse Mismatches(摩斯码)
来自https://blog.csdn.net/su_cicada/article/details/80084529 习题4-6 莫尔斯电码(Morse Mismatches, ACM/ICPC Wo ...
- PYTHON的ASCII码转换
首先,我们要知道ASCII的ord 这个变值,附上代码: c=input("请输入一个字符:") print (c+"的ASCII码为 ".ord(c)) #用 ...
- python实现的摩斯电码解码\编码器
代码地址如下:http://www.demodashi.com/demo/14743.html 详细说明: 现在这年头谍战片.警匪片动不动就用摩斯密码来传递信息,一方面可以用来耍帅,另外一方面好像不插 ...
- Python的字符串与字节码转换
一张图弄懂python的字符串与字节码转换
- python url码转换 chr()码
爬虫生成带搜索词语的网址 1.字符串转为url编码 import urllib poet_name = "李白" url_code_name = urllib.quote(poet ...
- 数据分析:基于Python的自定义文件格式转换系统
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
随机推荐
- c#中的数据类型简介(string)
Sting 字符串 引入话题 字符串是一个引用类型,从string数据类型的代码定义中也可以看出它实现了IEnumerable<char>接口和IEnumerable接口,因此字符串可以看 ...
- 如何对MySQL 对于大表(千万级)进行优化
如何对Mysql中的大型表进行优化 @(mysql 笔记) 收集信息 1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节: 2.数据项:是否有大字段,那些字段的值是否经常被更新: 3.数 ...
- locate linux文件查找命令
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...
- Linux学习--alias命令
alias用于设置命令的别名,具体相应命令如下: 1.alias显示当前设置的别名 2.设置命令别名: alias 命令名=‘别名命令’ 3.显示指定的别名设置:alias name 4.取消相应 ...
- intial-scale=1的含义
meta name="viewport" content="width=device-width,initial-scale=1.0" 解释 <meta ...
- 重启VirtualBox里面的系统提示VT-x features locked or unavailable in MSR错误
有次不小心设置了一下virtualbox里面的一些配置,然后启动系统时出现了如下提示 在网上找了一些资料尝试了一些方法偶然有一次成功 原来是自己把那个cpu个数设置成了2,改成1就好了,不知道为什么做 ...
- top k 算法
对于一个非有序的数组A[p..r],求数组中第k小的元素. 如何考虑 排序(部分排序)就不用说了..o(nlgn),当然如果在实际情况中要一直取值,当然要排序后,一次搞定,以后都是O(1) 我们这里提 ...
- 开源语音识别系统 Simon
http://www.lupaworld.com/proj.php?mod=view&cid=&id=824 语音识别系统 Simon:Simon 是一个开源的语音识别系统,它不仅可以 ...
- 理解Unity加载和内存管理
转自:http://game.ceeger.com/forum/read.php?tid=4394#info Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBun ...
- POJ3253 Fence Repair(贪心)
分割木板的顺序是自由的,所以每次选择两块最短的板,组合在一起,增加队列,原来两个板出队,直到队列中为空或者仅仅剩下一个板时结束.这里使用优先队列较为方便. #include<iostream&g ...