今回は、Pythonのlen関数で文字列を取得する方法ついてご紹介します。
len関数とは
Pythonにおいて文字列の長さを取得する際には、len関数を使用します。
他のプログラミング言語ではlengthというプロパティやメソッドを使うことがありますが、Pythonではlengthという名前の組み込みメソッドはありません。
そのため、間違えてtext.lengthのように書くとエラーになるため注意しましょう。
また、len関数は文字列だけでなくリストやタプル、辞書など、さまざまなシーケンス型の要素数を取得できる汎用的な関数でもあります。
len関数の基本的な使い方
ここでは、len関数の基本例と注意点を段階的にご紹介します。
基本例
まずは、最もシンプルな文字列の長さを取得する例です。
1 2 3 |
text = "Hello, world!" length = len(text) print(length) |
13
上記の例では“Hello, world!”という文字列の長さを取得しています。
文字数は半角スペースや記号も含めてカウントされるため、結果は13となります。
空文字列の場合
空文字列は、一文字も含まれていない文字列のことです。
len関数で長さを取得すると、必然的に0が返ってきます。
1 2 3 |
empty_text = "" length_empty = len(empty_text) print(length_empty) |
0
文字を代入していない空文字列は、データが何もない状態を表します。
ユニコード文字列の場合
日本語をはじめ、多くの文字は実際のバイト数よりも論理的なコードポイント数でカウントされます。
以下の例では日本語を含む文字列の長さを取得します。
1 2 3 |
unicode_text = "こんにちは" length_unicode = len(unicode_text) print(length_unicode) |
5
「こんにちは」は5文字なので、結果は5となります。
ただし、絵文字や結合文字など、見た目とコードポイント数が一致しない場合もある点には注意が必要です。
よくあるエラー例
文字列の長さを取得しようとするとき、よく遭遇するエラー例をご紹介します。
-
NameError: name ‘length’ is not defined
他の言語の感覚でtext.lengthのように書いてしまうと、Pythonではlengthという名前が定義されていないため、このエラーが発生します。
文字列の長さを取得したい場合はlen(text)を使いましょう。
-
AttributeError: ‘str’ object has no attribute ‘length’
同じくtext.lengthのように文字列に対してlengthプロパティを呼び出してしまうと、文字列がlengthという属性を持っていないとしてエラーを出します。
-
TypeError: object of type ‘int’ has no len()
len関数は本来シーケンス型やコレクション型の要素数を数えるための関数です。
整数のようなシーケンスではない型に対してlenを実行すると、要素数を取得できないためエラーとなります。
まとめ
Pythonで文字列の長さを取得するにはlen関数を使います。
他の言語のようにlengthというプロパティやメソッドはありませんので、注意してください。
エラーを避けるためにも、len関数の正しい使い方をしっかり身につけておきましょう。