![](/img/trans.png)
[英]Function properly defined and working but not printing results in terminal
[英]Terminal printing results at another location?
大家。 我是一名初學者程序員,我似乎無法在網絡上的任何地方找到此信息,因此希望您能提供幫助。 我的問題是,有時當我嘗試打印結果時,終端會吐出諸如“”或“”之類的內容,而不是返回結果。 實際上,我從書中直接遵循了非常短,非常簡單的代碼行,仍然獲得了這些結果。
這里有一些例子可以更好地說明正在發生的事情。
在第一個示例中,“ potato”只是隨機文本文檔的文件句柄名稱。
import nltk
def diversity(potato):
return len(potato) / len(set(potato))
print diversity(potato)
#prints <function diversity at 0x107b5a848>">
要么
import nltk
print bigrams(['make', 'me', 'some', 'bigrams'])
#prints <generator object bigram at 0x1088a4d20>
但是,在教科書中的示例中,僅顯示了正確的打印結果。 如果真的很重要,那么我正在專門研究Bird,Klein和Loper撰寫的《使用Python進行自然語言處理》一書,並且正在運行Python 2.7.9。
誰能解釋正在發生的事情以及如何解決這個問題? 這些是非常簡單的代碼行,帶有非常簡單的答案,因此我的終端機似乎拒絕打印正確的答案這一事實令人煩惱且令人擔憂。 謝謝!
第二個例子很容易解釋。
nltk.bigrams
函數的返回值是一個generator 。 如果要查看返回的實際值,則需要對其進行迭代並打印其值:
In [11]: for bigram in nltk.bigrams(['make', 'me', 'some', 'bigrams']):
....: print bigram
....:
('make', 'me')
('me', 'some')
('some', 'bigrams')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.