参数问题,后面需要加“english”;下面的代码就是告诉你要用 english 这个参数皆在 .py 后面。
if len(sys.argv) == 2 and sys.argv[1] == "english":
PHRASE_FIRST = True
首先,这不是一个题目啊,这就是 Show,展示给你看 Python 是如何实现英文到代码的过程,比如下面这个例子,英文表达的很明确了吧,就是一个 Cannon 类,有构造函数,你想知道 Cannon 的 Python 代码,就输入Cannon,就得到 ANSWER。所以整个就是个学习的意思,不是让你解题啊。
首先,黏贴代码的时候注意缩进,否则我们想在机上修改的时候好麻烦(⊙﹏⊙)
第二,学习Python代码要会倒着看,从try的部分看起。另我觉得不是很有必要print所有的变量,重点在整个程序的理解。
第三,这道题目想利用txt文件中的单词来替换PHARSES中的%%%,***,@@@,PHARASES是一个dict类,分为keys and values.在程序中分别命名为snippet还有phrase:
Python Code
try:
while True:
snippets = PHRASES.keys()#选择key
print "snippet " , snippets
random.shuffle (snippets)#打乱顺序
print "random.s",random.shuffle(snippets)
#上面这一个步骤是从五个PHRASES elements随机选择一个
for snippet in snippets:
print "73line-snippet",snippet
phrase = PHRASES[snippet]#提取key值相应的value
print "75line-phrase", phrase
print "76line-snippet", snippet
print "77line-%convert(snippet, phrase)", convert(snippet, phrase)
question, answer = convert(snippet, phrase) #代入单词
print "answer", answer
if PHRASE_FIRST:
question, answer = answer, question
print question
#传递参数
raw_input("> ")
print "ANSWER: %s\n\n" % answer
except EOFError:
print "\nBYE"
#异常情况处理
第四,def convert()中你写的没错,问题似乎没有出现在那里。
就酱