12

私が書いている Python プログラムでは、© (著作権) 記号を出力する必要があります。これを行う簡単な方法はありますか?それとも、Python ではサポートされていませんか? これが例です。

print ("\(copyright symbol here\)") 

ごく簡単な問題です。ありがとう!

4

5 に答える 5

15

Python では、3 つの方法で文字列内に Unicode 文字を配置できます。u"…"(3.x の代わりに2.x を使用している場合は、Unicode 文字列を使用する方が簡単"…"です。unichrchr

  • '©': 直接入力してください。
    • これはおそらく、ソース コードの文字エンコーディングを選択する必要があることを意味します。たとえば、明示的にファイルを UTF-8 として保存し、その先頭にエンコーディング ヘッダーを配置します。(3.3 の場合、UTF-8 がデフォルトであるため、それを使用する場合はエンコード ヘッダーは必要ありません。)
    • Mac OS X では、ほとんどの言語のデフォルトのキーボード設定で、これは opt-G です。
    • Windows では、alt-numeric-keypad トリックを使用して 0169 を入力できると思いますが、それはそれほど簡単ではないようです。
    • キーボードで「©」を入力する方法がわからない場合は、他の場所からコピーして貼り付けます (「著作権記号」をグーグルで検索すると、コピーできるページが見つかるはずです。さらに言えば、ここからも) .
    • または、お使いのコンピューターには、特殊文字をポイント アンド クリックできる Character Viewer などの機能が搭載されている可能性があります。
  • '\u00a9': Unicode 数値エスケープ シーケンスを使用します。
    • Google で「Unicode 著作権記号」を検索すると、U+00A9 であることがすぐにわかります。Python では、「\u00a9」です。
    • Basic Multilingual Plane の外側、つまり 4 桁以上の 16 進数の場合は、大文字Uと 8 桁を使用します。
  • '\N{COPYRIGHT SIGN}'処置: Unicodeエンティティ名のエスケープ・シーケンスを使用してください。
    • 繰り返しになりますが、エンティティの正しい名前を見つけるには、おそらくグーグルで検索する必要があります。
    • 使用できる名前と使用できない名前が完全に文書化されているわけではありません。しかし、それは通常、期待どおりに機能し、COPYRIGHT SIGN明らかに よりも読みやすくなって00a9います。

間接的に処理することもできます。たとえば、上記のリテラルと同じ文字列を返しますunicodedata.lookup('COPYRIGHT SIGN')chr(0xa9)しかし、リテラルを使用しない理由はありません。

Python docsのUnicode HOWTOには、これに関するより詳細な情報があります。すべてを読みたくない場合は、文字列型で、さまざまな種類のエスケープ シーケンスについて説明します (および、Unicode とバイト文字列の間のエンコード/デコードの問題について説明します) 。 、これは 2.x で特に重要です)、およびPython ソース コードの Unicode リテラルでは、コーディング宣言を指定する方法について説明しています。

使用できるすべての文字の公式リストが必要な場合は、単にグーグル検索するのではなく、unicodedataお使いのバージョンの Python のドキュメントを参照してください。このドキュメントには、適切なバージョンの Unicode Character Database へのリンクが含まれています。(たとえば、3.3.0 では 6.1.0、2.7.3 では 5.2.0 など) 実際のリストにアクセスするには、いくつかのリンクをたどる必要がありますが、これが唯一の方法です。 Python にコンパイルされたものとまったく同じであることが保証されているものを取得します。(そして、それが気にならない場合は、Google で検索するか、Wikipedia またはコンピューターの文字ビューアーを使用することもできます。)

于 2013-02-27T00:52:53.647 に答える
9

Python 2 の場合:

>>> print u"\u00a9"
©
>>> print u"\N{COPYRIGHT SIGN}"
©

Python 3 では:

>>> print("\u00a9")
©
>>> print("\N{COPYRIGHT SIGN}")
©
>>> print("©")
©

Python 2 では、文字列の前に au ( u"...") を付けて、python に Unicode 文字列であることを伝える必要があります。ただし、Python 3 ではすべての文字列が Unicode 文字列であるため、文字列の先頭に u を付ける必要はありません (実際には 3.0-3.2 では許可されていません)。

ここで文字とその名前/ユニコード値のリストを表示できます: http://www.fileformat.info/info/charset/UTF-16/list.htmここ で使用されている著作権記号と同じように使用できます

于 2013-02-27T01:01:47.510 に答える
3

著作権記号は Unicode 文字です。端末がこの文字を含む文字エンコーディング (utf-8 や cp1252 など) をサポートしている場合は、次のように出力できます。

これは、端末の文字エンコーディングを検出する Python に依存しています。

In [64]: print(u'\N{COPYRIGHT SIGN}')
©

これは明示的なエンコーディングを使用します(私の端末はutf-8文字エンコーディングを使用するように設定されているため、たまたま機能します):

In [65]: print(u'\N{COPYRIGHT SIGN}'.encode('utf-8'))
©
于 2013-02-27T00:50:22.657 に答える
3
print u"\u00A9"

ここで、「\u00A9」は著作権記号の Unicode 文字です。

于 2013-02-27T00:59:26.247 に答える
3

もちろん!著作権記号を入力します。

print("©")

(Python には、たとえば HTML にあるような文字エンティティはありません。)

于 2013-02-27T00:46:15.113 に答える