2010-02-28 30 views
24

new here!我是一名Python初學者,我一直在瀏覽Python食譜(第二版)以瞭解如何處理字符串和字符。不能在Python 3.1中使用unichr

我想嘗試將一個數字轉換爲其Unicode編碼。所以,我嘗試使用built-in function called 'unichr',其中,根據食譜,去這樣的:

>>> print repr(unichr(8224)) 

...並且將輸出:

u'\u2020' 

但是,代碼失敗。我認爲這與print有關(因爲Python 3使用print()而不是print「」),但那也沒有解決。我嘗試了一些代碼變體,但仍然失敗。終於,我剛纔輸入的簡單的一行:

unichr(10000) 

令我驚訝的是,該錯誤信息保持雨後春筍般冒出來,不管我把什麼樣的價值爲上述功能:

NameError: name 'unichr' is not defined 

可能是什麼問題?是否有一些我應該導入的特定模塊?

+1

只是提示:你可以也應該在「代碼失敗」之後提及錯誤信息。請始終注意Python給出的錯誤消息(以及* exact *錯誤消息,而不是內存),並提前提及。 –

+0

謝謝你的建議,我一定會記住的。 – anonnoir

回答

39

在Python 3,你只需要使用CHR:

>>> chr(10000) 
'✐' 
3

Python 3.x都有不具有特殊的Unicode字符串類型/類。每個字符串都是一個Unicode字符串。所以...我會嘗試chr。應該給你什麼unichr做前3.x。不幸的是,無法測試。

11

在Python 3中,unicode和普通字符串之間沒有區別。僅在Unicode字符串和二進制數據之間。所以開發人員最終刪除了unichr函數,轉而使用普通的chr,該函數現在可以完成舊的unichr所做的功能。請參閱文檔here

+0

謝謝。我嘗試在這個評論區域發佈相關問題,但它不能正確填寫,所以我已在下面發佈。 (我希望這樣做不會違反網站規則。) – anonnoir

+0

還有兩種字符串類型。什麼2.x調用'unicode',3.x調用'str'(有微小的變化)。 2.x調用「str」,3.x調用「字節」(適度更改)。 –

相關問題