与文字工作,需要将ABC翻译为Alpha、Bravo、Charli

2024-06-28 11:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,我尝试通过以下链接做一些简单的Python练习: http://www.ling.gu.se/~lager/python_exercises.html

但我对35号有问题。目前。在

我需要做的是做一个小程序,它会说出我输入的内容:但是所有的a都将被称为Alpha,所有的b都将被称为Bravo,所有的c都将被称为Charlie等等。。在

我得到了这个帮助我:

d = {'a':'alfa', 'b':'bravo', 'c':'charlie', 'd':'delta', 'e':'echo', 'f':'foxtrot',
 'g':'golf', 'h':'hotel', 'i':'india', 'j':'juliett', 'k':'kilo', 'l':'lima',
 'm':'mike', 'n':'november', 'o':'oscar', 'p':'papa', 'q':'quebec', 'r':'romeo',
 's':'sierra', 't':'tango', 'u':'uniform', 'v':'victor', 'w':'whiskey', 
 'x':'x-ray', 'y':'yankee', 'z':'zulu'}

到目前为止,我所做的是:

^{pr2}$

而且这是按意图工作的,它会说出我输入的内容。但是,有谁能帮我弄清楚如何实现它才能像上面描述的那样工作吗?在

我们将非常感谢所有的帮助。请记住我对这个很陌生。在


Tags: 程序alphahttp内容链接htmlwwwling
3条回答

嗯,这个怎么样:

>>> print ' '.join(d[letter.lower()] for letter in list(raw_input('Type your text now: ')))
Type your text now: Python
papa yankee tango hotel oscar november

(如果您只是将此作为输入演讲者。说话你应该没事的。)

我知道这是一个班轮,但你可以很容易地把它分开。。在

好吧,你需要真正理解你的输入和输出是什么,以及需要什么样的转换。在

提供给您一个dictionary d,它类似于电话簿:它映射两种类型的数据(在电话簿的情况下,是一个人的姓名和电话号码)。在

res = input()是一个函数,它将返回(并存储到res)用户输入的内容。在

speaker.speak ( w )将显示作为输入提供的单词w

所以基本上你需要使用d来转换res,转换的输出将作为speaker.speak的输入

提示:output = d[input]返回输入un的映射

既然您已经有了它的字典,只需遍历字符串并使用键:

from win32com.client import constants
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")

d = {'a':'alfa', 'b':'bravo', 'c':'charlie', 'd':'delta', 'e':'echo', 'f':'foxtrot',
 'g':'golf', 'h':'hotel', 'i':'india', 'j':'juliett', 'k':'kilo', 'l':'lima',
 'm':'mike', 'n':'november', 'o':'oscar', 'p':'papa', 'q':'quebec', 'r':'romeo',
 's':'sierra', 't':'tango', 'u':'uniform', 'v':'victor', 'w':'whiskey', 
 'x':'x-ray', 'y':'yankee', 'z':'zulu'}
speaker.speak("Hello.. Please write a line you want me to say")
print ("Type your text now:")
inp = input()
print ("Outputting...")
result = ' '.join(d[c.lower()] for c in inp)
speaker.speak(result)

好了,希望这有帮助!在

相关问题 更多 >