オーダーメイドコース
icon
icon

Pythonで日本語を扱う方法【初心者向け】

初心者向けにPythonで日本語を扱う方法について解説しています。Pythonで日本語を使用する場合の文字コードの宣言方法を実際に文字列を入力しながら順番に覚えていきましょう。文字コードの種類も知っておくと便利です。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonで日本語を扱う方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

日本語を扱う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Pythonで日本語を扱う注意点とは

Python での日本語の扱いは、Python で使用している文字コードと深い関わりがあります。以前の、Pythonのバージョン2.x(xは任意の数字)では、標準の文字コードは ASCII でした。よって日本語を扱う際は、文字コードを宣言して扱う必要がありました。

しかし、現在主流のPython のバージョン3.xでは、標準の文字コードはUTF-8となったため、文字コードを宣言することなく、日本語を扱えるようになっています。これからPythonを学習する場合は、バージョン3.xを使用することになるため、Pythonで日本語を扱う際、特別に注意することは無いでしょう。

なお、文字コードについては、以下の記事も参考にしてください。

Pythonでファイルの文字コードを判定する方法

 

文字コードを宣言する書き方

Pythonのソースで使用する文字コードの宣言は以下のように行います。文字コードを宣言しなければ、デフォルトの文字コード「UTF-8」が使用されます。

# coding: エンコーディング名

エンコーディング名には、以下の文字が入ります。

utf_8 Python3.x標準の文字コード
shift_jis 日本のパソコンで主流だった文字コード
cp932 shift_jisの亜種でWindowsで現在も利用されている
iso2022_jp 電子メールで用いられる
euc_jp Unixで用いられる

注意点として、文字コードの宣言と、実際のソースファイルの文字コードは一致させる必要があります。

MacやCloud9などの環境では、デフォルトでUTF-8でソースファイルが作成されますが、Windowsの場合、エディターによってはcp932(シフトJISと表記される)で作成される場合もありますので注意しましょう。

 

[PR] 未経験からWebエンジニアを目指す方法とは

実際にPythonで日本語を扱ってみよう

今回のサンプルプログラムでは、UTF-8でソースファイルを作成し、異なる文字コードの宣言をすることで、Python における日本語の扱いを確認していきます。以下のプログラムを作成し「chr.py」というファイル名で保存しましょう。

# coding: cp932
print("こんにちは")

プログラムを作成したら実行します。

Python chr.py

実行結果は以下のようになります。

縺薙s縺ォ縺。縺ッ

「こんにちは」と表示されるはずなのに、異なる結果が表示されましたね。これはUTF-8の文字コードを、無理やりcp932で表示させようとしたためです。

それではプログラムを修正しましょう。

# coding: utf-8
print("こんにちは")

実行結果は以下のようになります。

こんにちは

正しく表示されましたね。

 

次に、文字コードの宣言を削除してみましょう。

print("こんにちは")

実行結果は以下のようになります。

こんにちは

ソースファイルの文字コードがUTF-8であるため、文字コードを宣言しなくてもUTF-8で表示されます。プログラムを書いていて、文字が正しく表示されない場合は、ソースファイルの文字コードがUTF-8か、そうでない場合は文字コードの宣言と一致しているか、確認するようにしましょう。

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。