Pythonで文字列の長さを取得する方法!len()の基本と応用
生徒
「Pythonで文字が何文字あるか調べる方法ってありますか?」
先生
「はい、Pythonではlen()という関数を使うことで、文字列の長さを簡単に調べることができますよ。」
生徒
「関数ってなんですか?難しそう…」
先生
「関数というのは、何かの作業を自動でやってくれる命令のことです。len()は『長さを調べてくれる命令』と思ってOKですよ!」
1. Pythonのlen()関数とは?
len()は「れん」と読み、Pythonに最初から用意されている“組み込み関数”です。かっこの中に対象を入れると、その「長さ(=個数)」を整数で返します。ここでは文字列に使うと「文字数」を数えてくれる、と覚えましょう。
イメージとしては「箱の中に何個入っているかを数える係」。文字列という箱に文字が入っていて、len()が数を教えてくれる、という考え方です。むずかしい前提知識は要りません。
試しに、文字列の長さを数えて画面に出してみます。ダブルクォート(")で文字列を作り、len()に渡すだけです。
text = "こんにちは"
length = len(text) # 文字列の長さ(文字数)を数える
print("文字数は", length) # 結果を表示する
文字数は 5
このように、len()は「かっこの中に調べたいものを入れる→数が返る」というシンプルな道具です。まずは「文字列の文字数を数える関数」として使い方の形を覚えておくと、次のステップがぐっと楽になります。
2. len()関数の基本的な使い方
len()の基本は「1) 文字列を用意する → 2) len(文字列)で数える → 3) 結果を表示する」の3ステップです。まずは変数に文字列を入れて、その長さ(文字数)を取り出してみましょう。
text = "こんにちは" # 数えたい文字列を用意
count = len(text) # len()で文字数を数える(整数が返る)
print("文字数は", count, "です") # 結果を表示する
文字数は 5 です
返ってくる値は整数(たとえば5)なので、計算や比較にもそのまま使えます。変数textの中身を別の文章に入れ替えれば、len()は自動で数え直してくれます。はじめのうちは「文字列を変数に入れる → len()に渡す → print()で表示」という流れを体で覚えるのがおすすめです。
3. 直接文字列をlen()に入れる方法
変数を使わずに、直接文字列をlen()に入れることもできます。とてもシンプルです。
print(len("おはようございます"))
9
このように、変数を使わなくてもそのまま文字数を数えることができます。
4. 空文字列の長さはどうなる?
中身が空っぽの文字列(何も書かれていない文字列)にもlen()を使うことができます。
text = ""
print(len(text))
0
このように、何もない文字列の長さは0になります。
5. 文字列以外でも使える!リストやタプルの長さを調べる
len()関数は文字列だけでなく、リスト(データの集まり)やタプルにも使えます。
fruits = ["りんご", "みかん", "バナナ"]
print(len(fruits))
3
このように、リストの中にある要素(データ)の数を調べることもできます。
6. len()と組み合わせると便利な使い方
たとえば、ユーザーが入力した文章の文字数が50文字を超えていないか確認したいときに、len()関数はとても役立ちます。
message = input("メッセージを入力してください:")
if len(message) > 50:
print("50文字以内で入力してください。")
else:
print("入力ありがとうございます。")
このように、入力された文章の長さを調べて、条件に合わせてメッセージを変えることができます。
7. 日本語と英語の文字数の違い
Pythonのlen()関数は、1文字を「1つ」として数えます。ひらがな・カタカナ・漢字・アルファベットすべて同じように扱われます。
print(len("Hello")) # 英語5文字
print(len("こんにちは")) # 日本語5文字
5
5
このように、日本語と英語の文字数も正確に数えてくれます。
8. len()の注意点:空白(スペース)や改行もカウントされる
len()関数は、スペース(空白)や改行も「文字」として数えます。たとえば、次の例を見てみましょう。
text = "こんにちは "
print(len(text))
6
「こんにちは」は5文字ですが、後ろに空白があるので全部で6文字とカウントされます。
9. len()を使った練習問題
それでは最後に、len()関数を使った練習問題に挑戦してみましょう。
次のコードで、出力結果は何になりますか?
text = "Pythonは楽しい!"
print(len(text))
正解は次の通りです。
10
感嘆符(!)も1文字として数えられます。
まとめ
この記事ではPythonのlen関数を使って文字列の長さを数える基本から応用までを丁寧に整理しました。文字列の文字数を数える考え方、直接文字列を渡す方法、空文字列の扱い、リストやタプルなどの入れ物の要素数を調べる方法、入力チェックに役立つ条件分岐の考え方、日本語と英語が混在する場合の数え方、空白や改行も数に含まれる注意点、そして手を動かして理解を深める練習問題まで、学習の流れがひとつの線でつながるように構成しました。ここでは学んだ内容を振り返りつつ、現場でそのまま使える確認の手順と書き方のコツをもう一歩だけ深掘りしておきます。
要点の整理と実務での使いどころ
第一に、文字列の長さはlen関数に対象を渡せば即座に整数として得られます。得られた数値は比較や計算にそのまま使えるため、入力フォームの上限下限の判定、プロフィール名の最小文字数の確認、説明文の最大文字数のガード、通知文作成時の省略処理の判断など、広い場面で役立ちます。第二に、空文字列は中身が空の値であり、lenの結果は零となります。未入力の検出は最初の入り口として簡潔で効果的です。第三に、半角全角や日本語英語の違いに関係なく一文字は一つとして数えられます。したがって見た目の印象に引っ張られず、結果の整数だけを基準に整然と判断できます。第四に、空白や改行やタブのような見えにくい記号も文字として扱われます。文章末尾に余計な空白が並ぶと意図せぬ超過の原因になるため、確認表示や前後の除去で早めに整えるのが安全です。最後に、リストやタプルなどの入れ物でも同じ関数で数えられるため、データの件数確認やループの前段階の安全確認に自然に組み込めます。
よくあるつまずきと安全なチェック手順
文字数が条件を越えてしまう原因の多くは目に見えない空白と改行の混入です。確認の基本は三段階です。最初に結果の整数を印字して感覚と数のずれを把握します。つぎに前後を括弧で囲って見た目を確かめます。最後に必要であれば前後の空白を取り除いてから再度数え直します。この三段階を癖にすると、実装の場面で迷いが減り、表示崩れや保存時の検証エラーを未然に防げます。
text = input("文章を入力してください:")
n = len(text)
print("文字数:", n)
print("[" + text + "]")
clean = text.strip()
print("整形後の文字数:", len(clean))
括弧で囲って表示する工夫は単純ですが、空白や改行の実在を確かめるのに非常に有効です。整形後の数と元の数の差が大きい場合は、入力経路や貼り付け元に余計な空白が含まれている可能性が高いと判断できます。
日本語文書での実感と丁寧な運用
日本語の文章では句読点や全角の記号、長音符、かぎかっこなどが自然に混ざります。len関数はそれらも一文字として数えるので、見た目の幅や表示行数に惑わされず、まず数で捉える姿勢が大切です。見出しの短文、本文の要約、説明文のガイド、ボタンのラベル、エラーメッセージの案内、いずれも文字数の上限を先に決めてから内容を整えると、設計と文章がぶつからずに進みます。文章を仕上げるときは、空白と改行の置き方を丁寧に整え、意図しない末尾空白を減らし、保存前にもう一度数値で確認するだけで、誤差のない仕上がりに近づきます。
要素数の把握とデータの見落とし防止
入れ物の長さを把握することはデータ処理の第一歩です。リストの長さは読み込みや検索の結果が期待通りかどうかを教えてくれます。件数が零なら例外処理へ進み、件数が上限を越えていればページ分割や要約の判断へ切り替えます。数で現状を掴んだあとに中身の確認へ進む、という順序は、規模が大きくなっても通用する堅実な考え方です。
items = ["説明", "注意", "補足", "要約"]
count = len(items)
print("件数:", count)
if count == 0:
print("対象が見つかりません。")
elif count > 10:
print("多すぎるため最初の十件のみ表示します。")
else:
print("全件表示します。")
ここでも判断の軸は整数です。読みにくい条件を避け、明快な境界値を先に置いておくと、後から見直したときに意図が伝わります。説明文の作成、一覧の組み立て、要約の決定、すべてが数を起点に落ち着きます。
短い実用スニペット集
学んだ形を保ったまま、実務でそのまま使える短い部品をまとめておきます。どれも一行二行で数を判断し、文章や配列の扱いを丁寧に整えます。
# 概要の長さを超えたら末尾に記号を付けて切り詰める
summary = "説明文の基本をわかりやすく示す短い文章です。"
limit = 20
print(summary if len(summary) <= limit else summary[:limit] + "…")
# 入力された名前が規定範囲かを判定する
name = "たろう"
if 2 <= len(name) <= 12:
print("使用できます。")
else:
print("文字数の範囲を確認してください。")
# 検索結果の件数に応じて案内文を変える
results = ["案内", "注意"]
n = len(results)
print("見つかりません。" if n == 0 else f"{n}件見つかりました。")
いずれも目で追いやすい条件と簡潔な分岐で構成しています。文字列の長さや件数は曖昧さがなく、比較演算と相性が良いので、まず数で決める、という考え方を習慣にすると設計が安定します。
学びを定着させる確認リスト
一、文字列の長さはlenで数える。二、空文字列は零。三、空白と改行も数に含まれる。四、日本語と英語が混ざっても一文字は一つ。五、入れ物の要素数も同じ関数で調べられる。六、結果の整数を比較して安全に分岐する。七、表示の直前に数を再確認する。八、境界値を最初に決める。この八点を心に置いておけば、文章の扱いもデータの扱いも迷いにくくなります。
仕上げのミニチェック
最後に、学びが身についたかを確かめる短い問いを置いておきます。末尾に空白が三つある文章、改行が一つ混ざる文章、記号が並ぶ文章、これらの文字数を頭の中で予想し、すぐにlenで確かめましょう。予想と結果が一致する回数が増えるほど、数で判断する感覚が磨かれていきます。
print(len("文章の末尾に空白がある "))
print(len("途中で改行が入る\\n文章"))
print(len("記号と数字と文字の混在!123"))
数値は冷静であり、文章は豊かです。両者をバランスよく扱うために、まず数で状況を掴み、次に言葉で整えるという順序を忘れないようにしましょう。日々の作業の小さな場面で繰り返し使い、手に馴染ませていくことが近道です。
現場で役立つ活用アイデア集
案内文章の冒頭を一定の長さで切り詰めて一覧に並べ、詳細画面で全文を示す構成は読みやすさと速度の両立に役立ちます。通知文の見出しは短く端的に、本文は余裕を持って、という配分も文字数の基準を先に決めておけば迷いません。入力欄の傍らに現在の文字数を小さく表示しておけば、利用者は自然に範囲内へ調整できます。検索結果の件数を画面の上部に示し、件数に応じて絞り込みを促す案内を切り替えると、迷いの少ない操作体験につながります。規模の大小に関係なく、基準の数と穏やかな案内だけで画面は落ち着きます。
文章作成の現場では、目で見た印象と実際の数値の間にずれが生まれがちです。そこで、作業の最初と最後に数値で確かめる習慣を置き、途中では意味の通りや語の響きに集中するように分担を切り替えます。一本の文章にかける時間が限られていても、最初の計測と最後の計測だけは省かずに挟む、この小さな徹底が品質の土台になります。
生徒
「今日はいろいろ試しましたが、結局だいじなのは結果の数を基準に考えることだと分かりました。空白や改行が数えられる点も意外でした。」
先生
「その通りです。見た目に惑わされず、まずはlenの結果を確認する癖をつけましょう。前後を括弧で囲う小さな工夫だけでも見落としを減らせます。」
生徒
「日本語と英語が混ざっても一文字として数えるので、判断が単純で助かります。入れ物の件数も同じ関数で分かるのがうれしいです。」
先生
「文章の上限下限、一覧の件数、未入力の検出、どれも同じ型で書けます。数を起点に分岐を決め、必要に応じて整形してから保存する。これを守れば安心です。」
生徒
「明日からは境界値を先に決めてから文章や画面を組み立ててみます。まずは数で掴み、次に言葉で整える、ですね。」
先生
「ええ、その順序が身につけば、迷いなく前へ進めます。小さな検証をこまめに挟み、手を動かして定着させていきましょう。」