web-dev-qa-db-ja.com

Python 3.1ではunichrを使用できません

私はPython Cookbook(2nd Edition)を見て、文字列と文字の処理方法を学びました。

数値をUnicode版に変換してみました。そこで私は 'unichr'と呼ばれる組み込み関数 を使用しようとしました。

>>> print repr(unichr(8224))

...そして出力されます:

u'\u2020'

ただし、コードは失敗しました。 print(Python 3はprint ""の代わりにprint()を使用するため) 、しかし、それはうまくいきませんでした。私はコードにいくつかのバリエーションを試みましたが、それでも失敗しました。

unichr(10000)

驚いたことに、上記の関数にどのような値を指定しても、このエラーメッセージが表示され続けました。

 NameError: name 'unichr' is not defined

何が問題なのでしょうか?インポートすることになっている特定のモジュールはありますか?

49
anonnoir

Python 3では、単に chr を使用します。

>>> chr(10000)
'✐'
65
Mark Byers

Python 3.xには、特別なUnicode文字列型/クラスはありません。すべての文字列はUnicode文字列です。それで... chrを試してみます。 unichrが3.xより前に行ったことを示します。残念ながらテストできません。

4

python 2とpython 3の両方で実行する必要がある場合は、この一般的な構文を使用できます(未使用の構文は新しい構文を指します)

try:
    unichr
except NameError:
    unichr = chr
2
mork