中易网

笨方法学python练习EX41问题、报错,自助非常感谢, 1个小时我都找不到。。

答案:2  悬赏:30  
解决时间 2021-01-14 03:07
  • 提问者网友:眉目添风霜
  • 2021-01-13 05:09
笨方法学python练习EX41问题、报错,自助非常感谢, 1个小时我都找不到。。
最佳答案
  • 二级知识专家网友:一秋
  • 2021-01-13 05:28
首先,黏贴代码的时候注意缩进,否则我们想在机上修改的时候好麻烦(⊙﹏⊙)


第二,学习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

" % answer
except EOFError:
print "
BYE"
#异常情况处理

第四,def convert()中你写的没错,问题似乎没有出现在那里。

就酱
全部回答
  • 1楼网友:千夜
  • 2021-01-13 06:01

参数问题,后面需要加“english”;下面的代码就是告诉你要用 english 这个参数皆在 .py 后面。if len(sys.argv) == 2 and sys.argv[1] == "english":
PHRASE_FIRST = True
首先,这不是一个题目啊,这就是 Show,展示给你看 Python 是如何实现英文到代码的过程,比如下面这个例子,英文表达的很明确了吧,就是一个 Cannon 类,有构造函数,你想知道 Cannon 的 Python 代码,就输入Cannon,就得到 ANSWER。所以整个就是个学习的意思,不是让你解题啊。
追问
恩,感谢你,我是照着课本敲了一边,然后运行报错了,所以不知道为什么错了。
不过我已经找到我桥的代码问题了,for 需要缩减,代码规范问题。。。哎,我太菜了。。
追答~~缩进是 Python 的基础啊,养成习惯就好,多看看源代码,多写网上的题目,慢慢 Python 就会融入你的生活了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息