【Python】文字列の扱い方【入門第12回】

86, 2019-08-05

目次

文字列の扱い方

こんにちは、narupoです。

今回は、Pythonの文字列について解説していきます。
文字列については

↑でもやりましたが、今回はもう少し詳しく見ていきます。

そもそも文字列ってなんなの?

そもそも文字列っていったいなんなのでしょうか?

文字で文字列ですが、この文字というのは実は、Pythonの中では数値で表現されています。

パソコンというのは基本的に数値しか理解できません。
それも01で表現できる数値しか理解できないのです。

そこでパソコンは文字を数値に置き換えて理解しています。
たとえばアルファベットなどのASCIIコードなどがそうです。

そして、文字を表示するときはその数値に対応したフォントを表示しています。
そうすることで、人の目には文字は数値ではなくちゃんとした文字に写ります。

つまり文字列というのは、内部的には数値の列なんですね。
この数値の列を使ってフォントを表示しているので、人の目には文章に見えるのです。

みなさんのエディターも、「Hello, World!」という文章を打ち込むと、ちゃんと「Hello, World!」と表示されていると思いますが、それは内部的には数値の列としてエディターが処理しています。
それで、エディターを使っている人にはその数値に対応するフォントを表示しているわけですね。

文字列の作りかた

文字列を作るには文字列にしたい文章をシングルクォーテーション(')で囲みます。
↓こんな感じです。

:::python
'Hello, World!'

↑は「Hello, World!」という文章をシングルクォーテーションで囲っています。
Pythonではこの「Hello, World!」は文字列です。

また、ダブルクオーテーションで囲っても同様です。

:::python
"Hello, World!"

エスケープ

シングルクォーテーションの文字列の中でシングルクォーテーションを使いたい場合はどうするのでしょうか。

その場合、文章内のシングルクォーテーションを\(バックスラッシュ)でエスケープします。
↓こんな感じです。

:::python
'It\'s a beautiful world'

\(バックスラッシュ)を書きたい場合は?
はい。その場合は\\でエスケープします。

:::python
'100\\'

raw文字列

また、シングルクォーテーションの前にrと書くとエスケープせずに\を書くことができます。
これはraw文字列と呼ばれています。
まだ使う機会は少ないかもしれませんが、なんとなーく覚えておきましょう。

:::python
r'C:\path\to\heaven'

つらなった文字列

↓のように文字列を並べた場合、Pythonは勝手に並んでいる文字列を連結します。

:::python
'左' '右'

ためしに出力してみましょう。

:::python
print('左' '右')

↑のコードの実行結果は↓のようになります。

左右

左と右の文字列が連結されてますね。

複数行の文字列

文字列を複数行にまたがって書きたい場合は↓のようにします。

:::python
'''
古池や
蛙飛び込む
ウォータースライダー
'''

シングルクオーテーション3つ(''')で文章を囲むと複数行にまたがった文章を文字列にすることができます。

これも出力してみましょう。

:::python
print('''
古池や
蛙飛び込む
ウォータースライダー
''')

↑のコードの実行結果は↓のようになります。

古池や
蛙飛び込む
ウォータースライダー

文章先頭の改行と末尾の改行が気になる! という人は↓のように文字列を書いてみましょう。

:::python
print('''\
古池や
蛙飛び込む
ウォータースライダー\
''')

無視したい改行の前に\(バックスラッシュ)を書いてエスケープしています。
↑のコードの実行結果は↓のようになります。

古池や
蛙飛び込む
ウォータースライダー

先頭と末尾の改行が無くなっていますね。

strクラス

数値にはintとかfloatとかの設計図、クラスがありました。
文字列にも、もちろんこの設計図があります。

その名もstrクラスです。
strというのはstring(文字列)の略です。
Pythonというのは何でも略すのが好きな言語なんですね。

略しちゃうおじさん

なので、↓のコードは同じ意味です。

:::python
'Hi'
str('Hi')

例によってtypeを使って文字列の型を確認してみましょう。

:::python
print(type('Hi'))

↑のコードの結果は

<class 'str'>

になりました。
このことから、文字列はstr型と言うことが出来ます。

数値を文字列に変換する

このstrクラスを使うと、いろんなオブジェクトを文字列に変換することが出来ます。
オブジェクトとは、数値や文字列のことですね。"モノ"という意味です。

カタカナ使うな!

はい。このオブジェクトという言葉は、けっこう頻繁に使われているので、この機会に覚えておきましょう。

ためしに数値を文字列に変換してみましょう。

:::python
str(0)

strクラスに↑のように数値を渡すと、数値を文字列にすることが出来ます。
これの結果を出力すると

0

となりますが、なんのこっちゃわかりません。
これ数値なの? 文字列なの? どっちなの?

なんのこっちゃ

はい。そういうときはtypeを使いましょう。

:::python
print(type(str(0)))

↑のコードを実行すると↓の結果になります。

<class 'str'>

数値0を文字列(str型)に変換できていることがわかります。

もちろん実数も文字列にできます。

:::python
print(type(str(1.23)))

↑のコードの実行結果は↓のようになります。

<class 'str'>

おわりに

今回は文字列の基本的なことを解説しました。
文字列はまだ紹介してないことがあるので次回もやります。

文字列はプログラミングではとてもよく使いますので、しっかり覚えておきましょう。
次回に続きます。

また見てね

関連動画