Python入門講座

【Python入門講座】文字列の操作➀(slice/format)

こんにちは、実は今base91というコミュニティのもくもく会に初参加中の飯田です。

もくもく会とは、プログラミングを勉強している人同士が集まって、もくもくと勉強したり、時々雑談したりな会です。

特に飯田はかわいい天使たちが家に3人もいらっしゃるため、ちょいちょい作業の中断を余儀なくされるため、こういう場所で落ち着いて作業できるのはとってもありがたいです。

今回は何回かに分けて、文字型を色々操作する組み込み関数について書いていきたいと思います。

↓応援お願いします
ブログランキング・にほんブログ村へ
にほんブログ村

字型の操作って?どんな時に使うの?

文字型の操作は、以下のようなケースで必要となってきます。

・文字型のx文字目を取り出したい
・関数等で算出した結果を、固定の文字型と合わせて出力したい
・文字型を一定のルールで分割したい
・分割された文字型を統合したい

字型のX文字目を抽出する(slice)

文字型から特定の位置にある文字を取り出す際には、sliceという機能を使用します。

オニオンスライスってご存知ですよね。つまり、文字型を輪切りにして、欲しい部分を取り出すわけです。

sliceの使い方(コード記載方法)

sliceを使用する場合、以下のような書き方となります。

“nonstop”[ 4] 【出力結果】
t

文字型も以下の用な仕組みになっているんですね。

【図1】文字型の構造

sliceで複数文字を抽出する

【図1】の構造から、文字は1文字だけでなく複数を抽出することが可能です。
では、nonstopという文字型から2文字目から5文字を抽出してみましょう。

“nonstop”[1:5] 【出力結果】
onst

[抽出を開始する文字の順番:抽出を終了する文字の順番]という形で記載をすることで、利用できます。

逆からカウントして抽出する

上の例では、左からカウントしていますが、値をマイナスにすることで、右からカウントすることも可能です。
ではnonstopの右から2文字目を抽出してみてください。


     “nonstop”[-2] 【出力結果】
     o

数等の出力結果と文字列を組み合わせて出力する(format)

Pythonを勉強し始めて、かなり長い間このやり方を知らなかったのですが(独学だとこういうことありますよね)、知ったときは感動しました。

例えば、車の速度から距離を計算し、到着に必要な時間を出力した場合に、”到着にかかる時間はx時間です。”と表示を行うとします。

この場合、素直にコードを記載すると、、、

#到着必要時刻を算出
speed = 80
far = 120

x = 120/80

print(“到着にかかる時間は” + str(x) + “時間です。”)
【出力結果】
到着にかかる時間は1,5時間です。

という感じになります。

これをformatメソッドを使うと、、、

speed = 80
far = 120

x = 120/80

print(“到着にかかる時間は{}時間です。”.format(x))
【出力結果】
到着にかかる時間は1.5時間です。

同じ結果が出ましたね。

変数が更に増えると、なお便利です。

例えば先ほどの到達時間計算の例で、距離が5km以下なら徒歩で速度が5km/h、20km以下なら自転車で速度20km/h、50km以上なら自動車で速度50km/hでの移動になるとします。

出力のためのコードとしては、以下のようになります。

#距離を変数distance,移動手段を選んだ結果の速度をmove,移動手段をmobileとして条件式を作成する

distance = int(input())

if distance > 50:
    move = 50
elif distance > 20:
    move = 20
else:
    move = 5

#移動手段を選択
if move == 50:
    mobile = “自動車で”
elif move = 20:
    mobile = “自転車で”
else:
    mobile = “徒歩で”

#必要時間をtime変数とする
time = distance/move

#入力した距離の結果として、移動速度と必要時間を出力する
print(“距離が{}kmとなるため、{}で{}かけて移動する必要があります。”.format(distance,mobile,time))

次回は、文字型を分割するsplit、統合するjoinについて説明したいと思います。

お疲れさまでした!!