まず結論

len() は、文字列やリストの長さを調べる関数です。

name = "moco"
print(len(name))

この結果は 4 です。

len() は「中にいくつあるか」を数えるものです。

イメージで考える

len() は、箱や棚の中身を数えるカウンターのようなものです。

文字列なら文字カードの枚数を数えます。

リストなら入っている値の個数を数えます。

最後の番号ではなく、全部で何個あるかを返すと見ると混乱しにくいです。

文字列の長さ

文字列に使うと、文字数を返します。

word = "python"
print(len(word))

python は6文字なので、結果は 6 です。

リストの要素数

リストに使うと、要素の数を返します。

items = ["りんご", "みかん", "バナナ"]
print(len(items))

この結果は 3 です。

インデックスとはずれる

リストの最初は 0 番目です。

items = ["りんご", "みかん", "バナナ"]
print(items[0])

要素数は 3 ですが、最後のインデックスは 2 です。
そのため、最後を取り出すときに len(items) - 1 が出てくることがあります。

空のとき

空の文字列やリストなら、結果は 0 です。

print(len(""))
print(len([]))

どちらも 0 になります。

読み方のコツ

len(items) は「items の中に何個ある?」と読みます。
インデックス番号ではなく、個数を返す点だけ注意すると分かりやすいです。

手を動かすミニ練習

リストの中身を増やして、len() の結果が変わるか見てみましょう。

items = ["りんご", "バナナ"]
print(len(items))

items.append("みかん")
print(len(items))

len() は最後の番号ではなく、入っている個数を返します。