python实现带声音的摩斯码翻译实现方法

yipeiwu_com5年前Python基础

本文实例讲述了python实现带声音的摩斯码翻译程序,分享给大家供大家参考。具体分析如下:

这里需要使用PyGame来发出声音。

import pygame
import time
import sys
CODE = {'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': '----.' 
    }
ONE_UNIT = 0.5
THREE_UNITS = 3 * ONE_UNIT
SEVEN_UNITS = 7 * ONE_UNIT
PATH = 'morse_sound_files/'
def verify(string):
  keys = CODE.keys()
  for char in string:
    if char.upper() not in keys and char != ' ':
      sys.exit('Error the charcter ' + char + ' cannot be translated to Morse Code')
def main():
  print 'Welcome to Alphabet to Morse Code Translator v.01\n'
  msg = raw_input('Enter Message: ')
  verify(msg)
  print
  pygame.init()
  for char in msg:
    if char == ' ':
      print ' '*7,
      time.sleep(SEVEN_UNITS)
    else:
      print CODE[char.upper()],
      pygame.mixer.music.load(PATH + char.upper() + '_morse_code.ogg')
      pygame.mixer.music.play()
      time.sleep(THREE_UNITS)
if __name__ == "__main__":
  main()

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python3+PyQt5实现柱状图

python3+PyQt5实现柱状图

本文通过Python3+pyqt5实现了python Qt GUI 快速编程的16章的excise例子。 #!/usr/bin/env python3 import random...

matplotlib subplots 设置总图的标题方法

如下所示: matplotlib subplots 设置总图的标题 : fig.suptitle(dname,fontsize=16,x=0.53,y=1.05,) 以上这篇matplo...

python3中的md5加密实例

在python3的标准库中,已经移除了md5,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。...

python实现分析apache和nginx日志文件并输出访客ip列表的方法

本文实例讲述了python实现分析apache和nginx日志文件并输出访客ip列表的方法。分享给大家供大家参考。具体如下: 这里使用python分析apache和nginx日志文件输出...

Python3 把一个列表按指定数目分成多个列表的方式

如果我们需要将一个列表按指定数目分成多个列表:比如[1,2,3,4,5,6,7,8,9,10]分成[1,2,3][4,5,6][7,8,9][10],我们可以建立一个列表分割的函数spl...