【Python】len()で文字列の長さ(文字数)を調べる!

Pythonで文字列の長さ(文字数)を調べる場合はlen()を使用します。

len()とはオブジェクトの長さ(要素の数)を返す関数であり、リストの要素数や文字列の文字数など様々な型のオブジェクトのサイズを取得することができます。

そして、len()関数は普通の文字列の長さ(文字数)を調べるだけでなく、連結した文字列の長さ(文字数)やエスケープシーケンスを含めた文字列の長さ(文字列)も正確に調べてくれます。

しかし、len()関数は全角、半角の文字はどちらも1文字としてカウントしてしまうので、文字数のカウントを区別することができまんので注意してください。

今回は、Pythonのlen()で文字列の長さ(文字数)を調べる方法について以下の内容で解説していきます。

⚫︎ 文字列の長さ(文字数)を調べる場合
⚫︎ 連結された文字列の長さ(文字数)を調べる場合
⚫︎ 半角と全角の文字列の長さ(文字数)を調べる場合
⚫︎ エスケープシーケンスを含めた文字列の長さ(文字数)を調べる場合

ハルトさん

今回はPythonのlen()で文字列の長さ(文字数)を調べる方法について説明していきます。

さとみさん

はい!
お願いします!

len()とは

len()とはオブジェクトの長さ(要素の数)を返す関数であり、リストの要素数や文字列の文字数など様々な型のオブジェクトのサイズを取得することができます。

len()関数の書き方やパラメータについてはこちらをご参考ください。

文字列の長さ(文字数)を調べるサンプルコード

文字列の長さ(文字数)を調べるサンプルコードを紹介します。

文字列の長さ(文字数)を調べる場合

len()関数で文字列の長さ(文字数)を調べる場合を見てみます。

出力結果

文字列の文字数: 10

len()関数によって文字列の文字数を調べることができます。

そのため、文字列の文字数は「10」と表示されます。

連結された文字列の長さ(文字数)を調べる場合

len()関数で連結された文字列の長さ(文字数)を調べる場合を見てみます。

出力結果

文字列の文字数: 24

len()関数は連結された文字列の場合でも連結後の文字列の文字数をカウントしています。

そのため、連結後の文字列は「この文字列を調べる。この文字列を連結してみます。」であり、文字数は24文字なので「24」と表示されます。

半角と全角の文字列の長さ(文字数)を調べる場合

len()関数で半角と全角の文字列の長さ(文字数)を調べる場合をみてみます。

出力結果

abcdefghijk
全角文字列の文字数: 11
abcdefghijk

半角文字列の文字数: 11

len()関数は全角半角関係なくどちらも1文字としてカウントしています。

そのため、全角と半角の文字列の文字数はどちらも「11」と表示されます。

さとみさん

全角と半角はどちらも文字数は1文字としてカウントされるのですね!

ハルトさん

そうですね。
普通は半角2文字で全角1文字になるかと思いますが、len()関数の場合は半角全角関係なく文字は全て1文字としてカウントするようになります。

エスケープシーケンスを含めた文字列の長さ(文字数)を調べる場合

len()関数でエスケープシーケンスを含めた文字列の長さ(文字数)を調べる場合をみてみます。

出力結果

改行のエスケープシーケンス
が入っている文字列を調べる。
文字列の文字数: 28

水平タブのエスケープシーケンス が入っている文字列を調べる。
文字列の文字数: 30

len()関数はエスケープシーケンスも1文字としてカウントしています。

そのため、改行コードが入っている文字列の文字数は「28」、水平タブのコードが入っている文字列の文字数は「30」と表示されます。

さとみさん

エスケーブシーケンスは1文字としてカウントされるのですね!

ハルトさん

そうですね。
len()関数はエスケーブシーケンスも1つの文字としてカウントするようになります。
今回は、改行と水平タブのみを紹介していますが、他のエスケープシーケンスもlen()関数は1つの文字としてカウントします。

今回のポイント

len()で文字列の長さ(文字数)を調べる

⚫︎ Pythonで文字列の長さ(文字数)を調べるにはlen()関数を使用する

⚫︎ len()関数は連結された文字列の場合でも連結後の文字列の文字数をカウントする

⚫︎ len()関数は全角半角関係なくどちらも1文字としてカウントする

⚫︎ len()関数はエスケーブシーケンスも1文字としてカウントする

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報