私は多くの混乱の後に練習を完了し、彼のテストに合ったこのコードを作った。コードの改善、Pythonの難しい方法ex48
WORD_TYPES = {
'verb' : ['go', 'kill', 'eat'],
'direction' : ['north', 'south', 'east', 'west'],
'noun' : ['bear', 'princess'],
'stop' : ['the','in','of']
}
def scan(sentance):
listy = []
counter = 0
for word in sentance.split():
try:
count = counter
for key, value in WORD_TYPES.iteritems():
for ind in value:
if ind == word:
counter += 1
listy.append((key,ind))
if count == counter:
raise KeyError
except KeyError:
try:
value = int(word)
listy.append(('number',value))
except ValueError:
listy.append(('error',word))
return listy
著者はtryとexceptを使用したかったが、効率的に使用したとは思わない。ここでそれらを使用するより良い方法は何ですか?また、実際に試して除いているのはいつですか?コードを改善するための他のヒントも歓迎されます。
コードレビューで移動する必要があります。http://codereview.stackexchange.com/ –