CodeGym /コース /Python SELF JA /配列としての文字列

配列としての文字列

Python SELF JA
レベル 10 , レッスン 2
使用可能

10.1 文字列の各文字のループ

Pythonでは文字列はしばしば文字の配列/リストと見なされ、 他のプログラミング言語での配列と同様に操作するのにとても便利なんだ。

じゃあ、文字列は文字の集まりなんだから、ループで回すことができるよね。

文字列の各文字のループ

文字列の各文字をイテレートするのに、シンプルなforループを使えるよ。 これで各文字を個別に操作することができるんだ:


text = "Hello"
for char in text:
    print(char)

画面に出力されるのは:
H
e
l
l
o
            

重要! Pythonには個々の文字のためのchar型はないんだ。文字列の1文字もやっぱり文字列。

10.2 文字列の長さを測る

文字列で他に何ができるの?もちろんその長さを測る、つまりどれだけ文字があるか知るってこと。 これにPythonには特別な組み込み関数len()があるよ。この関数は文字列内の文字数を返すんだ:


text = "Hello, world!"
length = len(text)
print(length)  # 出力されるのは: 13
        

10.3 特定の文字を取得する

さらに、文字列の特定の文字をその番号、つまりインデックスで取得することもできるよ。

重要! Pythonのリストや配列のインデックスは0から始まるんだ。もし文字列が10文字なら、インデックスは0, 1, 2, ... 9になるよ。

インデックスで文字を取得する一般的な方法はこうだよ:


string[index]

全ての文字を画面に出力するけど、インデックスでアクセスしてみよう:


text = "Hello" 
for i in range(len(text)):
    print(text[i])
                            

画面に出力されるのは:
H
e
l
l
o
            

10.4 部分文字列の含有

文字列中に他の文字列が含まれているか確認することは、 Pythonでのプログラミングではよく解決しなきゃならない基本的なタスクの一つだね。この機能は多くのアプリケーションで広く使われていて、 例えばテキストデータの処理やユーザー入力のバリデーション、文字列内のデータ検索なんかがそうだよ。

このタスクのためにPythonにはいくつかの方法があるんだけど、Python独自のものもあれば、 他の言語でもよく使われるものもあるよ:

in演算子:

これは部分文字列が文字列に含まれているかどうか確認する最もシンプルでよく使われる方法だね。 部分文字列が文字列内にある場合はTrueを返し、そうでなければFalseを返すよ。


text = "Hello, world!"
print("world" in text)  # 出力されるのは: True
        

find()メソッド:

find()メソッドは、部分文字列が見つかった場合にその最初の出現のインデックスを返し、 見つからない場合は-1を返すよ。これにより、部分文字列が存在するかどうかだけでなく、その位置もわかるんだ。


text = "Hello, world!"
position = text.find("world")
print(position)  # 出力されるのは: 7
        

index()メソッド:

find()に似てるけど、部分文字列が見つからない場合は-1を返す代わりに、 ValueErrorエラーを生成するんだ。このメソッドは、部分文字列の欠如が予期しないものでエラーを引き起こすべき時に便利だよ。


text = "Hello, world!"
try:
    position = text.index("world")
    print(position)  # 出力されるのは: 7
except ValueError:
    print("Substring not found.")
       

count()メソッド:

count()メソッドは、部分文字列が文字列内で何回出現するかを数えるよ。 これは、含有だけでなく出現回数も知りたい時に役立つんだ。


text = "Hello, world!"
cnt = text.count("l")
print(cnt)  # 出力されるのは: 3
       
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION