1. 程式人生 > >Spyder的print語句不能輸出

Spyder的print語句不能輸出

在實踐中,一直遇到一下這個問題:UnicodeDecodeError:‘ascii’ codec can't decode byte 0xe7 in position 50: ordinal not in range(128)


對於這個問題,我仔細檢查了我的程式碼和資料,發現並沒有錯誤,但是總是會顯示這個問題。後來在網上找到了這個方法,在程式碼中加入一下程式碼:

import sys
reload(sys)
sys.setdefaultencoding('utf8')
之後這個問題確實得到了解決,沒有再顯示這個錯誤了。關於setdefaultencoding這個函式的使用,可以參考這篇文章:http://blog.csdn.net/May_mm/article/details/78278430

其實除了編碼問題之外,最優可能引起問題【UnicodeDecodeError:‘ascii’ codec can't decode byte 0xe7 in position 50: ordinal not in range(128)】一個常見的錯誤是,引數不一致,比如表格的欄位數對應的列數不一致,。至少我有幾次是因為這個問題引起的。

戲劇性地是,後來的操作中,不知道為什麼,print語句打印不出東西,無論我是重啟,還是重灌,問題依舊解決不了。於是我重新建了一個檔案,也不能列印東西。多次嘗試後,偶然發現,每次重啟之後,第一次執行其他的程式碼print都能正常輸出,但是隻要我執行那個包含上列三個語句的程式碼,就會重現print不能輸出的問題。

各種方法嘗試之後,我才發現是上面三句話的問題,將這三句話註釋之後,重啟Spyder就能正常進行輸出了。

總的感覺就是,又想哭又想笑閉嘴