如何避免死角錯誤?我不知道代碼可能迭代的任何函數或循環。Python Wolfram Alpha API:StopIteration
import wolframalpha
client = wolframalpha.Client('My Key is Goes Here')
res = client.query('pi')
print next(res.results).text
如何避免死角錯誤?我不知道代碼可能迭代的任何函數或循環。Python Wolfram Alpha API:StopIteration
import wolframalpha
client = wolframalpha.Client('My Key is Goes Here')
res = client.query('pi')
print next(res.results).text
我從來沒有用過wolframalpha
,但是這看起來應該是
for result in res.results:
print result.text
編輯:現在我已經安裝wolframalpha
,我看到,該查詢(和其他人我有嘗試過)在res.results
沒有結果。相反,他們有pods
。您可以通過豆莢爲in the docs迭代:
for pod in res.pods:
print '{p.title}: {p.text}'.format(p=pod)
您使用的是next是什麼創造的StopIteration錯誤。 Python對WolframAlpha的API是你在對結果提供了一個迭代循環(next
只是得到了「未來」的結果,而不是所有的)
你可以捕集器和嘗試錯誤/ except子句:
try:
print next(res.results).text
except StopIteration:
print "No results"
雖然這並不能真正解決問題,因爲沒有任何東西會打印出來。 –
如果之前打印過,則會在之後打印。下一次調用時出現StopIteration錯誤意味着沒有'next'結果。我的解決方案阻止這個異常傳播(如果你更喜歡這個,你可以在'except'子句中打印「無結果」)。 – Gerrat