PR
更新:2024/09/16

Pythonの文字列・str型・エスケープシーケンス・キャリッジリターン・raw stringについて

ふゅか
ふゅか
Pythonの文字列について知ってる?例えば、”1234″は数字の1234とは違うって話、面白いよね♪
はるか
はるか
うん。”1234″はstr型、1234はint型…基本。
ふゅか
ふゅか
そう!変数の型をちゃんと理解しないとエラーになっちゃうこともあるし、知っておく必要があるね!

1. str型

Pythonで文字列はstr型として扱われます。

1.1. 文字列

文字列型 ( str ) は””(ダブルクオーテーション)や”(シングルクオーテーション)を使って定義します。

"abcdefghi"
"あいうえお"
"1234"

ここで気を付けたいことは”1234″は1234ではないということです。”1234″は型がstrに対して、1234は型がintだからです。

はるか
はるか
複数行の文字列も作れる。”’とか”””を使う。

1.2. 型の確認

type()を使うと、その変数の型を確認できるため実行すると、

tall="2021m"
print(type(tall)) #&ltclass 'str'&gt

とわかるように、tallはstr(文字列)であることがわかる。

2. 複数行の文字列を作成する場合

複数行の文字列を作成する場合は、シングルクオーテーションを三つ(”’)またはダブルクオーテーションを三つ(”””)使用することで複数行の文字列を作成できます。

multiline_string = '''複数
の
行'''

3. エスケープシーケンス

エスケープシーケンスは、バックスラッシュ(\)と1文字のコードで構成される特殊な文字列です。エスケープシーケンスを使用することで、文字列の中に特殊な文字や制御文字を表現することができます。

\n : 改行
\t : 水平タブ
\r : キャリッジリターン
\\ : バックスラッシュ (\)
\’ : シングルクォーテーション
\” : ダブルクォーテーション

3.1. 改行

文字列を改行したいとき、改行したいところに、\nを書く。

print("出力は\nabcdef\nghi") 
#出力は
#abcdef
#ghi

3.2. キャリッジリターン

for i in range(10):
    print(i)

0から9までの数値を1ずつ増やしながら、それぞれを改行を挟んで表示するプログラムです。

import time
for i in range(10):
    print(i,end="\r")
    time.sleep(1)

一方このコードは、0から9までの数値を1秒ごとに更新しながら、同じ行に表示し続けるプログラムです。そのため、最初に0が表示されて1秒後に1に更新されます。

キャリッジリターン

3.3. 水平タブ

水平タブは、テキスト内で水平方向に一定のスペースを空けるために使用されます。

print("123456\tABC")

3.4. バックスラッシュ・シングルクォーテーション・ダブルクォーテーション

バックスラッシュ (\)、シングルクォーテーション (‘)、ダブルクォーテーション (“) は、文字列内で特別な意味を持つ文字です。例えば、シングルクォーテーションで囲まれた文字列内にシングルクォーテーションを含めたい場合、\’を用いる必要があります。同様に、ダブルクォーテーションで囲まれた文字列内にダブルクォーテーションを含める場合、\”を用いる必要があります。例えば、以下のようにエスケープシーケンスを使用して、文字列内にこれらの特殊な文字を含めることができます。

my_string = 'こんにちは!, \'Hello!\''
print(my_string)
my_string = "こんにちは!, \"Hello!\""
print(my_string)
my_string = "こんにちは!, \\Hello!\\"
print(my_string)
# 出力:
# こんにちは!, 'Hello!'
# こんにちは!, "Hello!"
# こんにちは!, \Hello!\

4. raw string

Pythonの文字列には、raw stringと呼ばれる特殊な表記方法があります。raw stringは、バックスラッシュをエスケープシーケンスとして解釈するのではなく、単なる文字として扱います。raw stringを作成するには、文字列の前に r を付けます。

はるか
はるか
raw string…バックスラッシュが普通の文字になる。
ふゅか
ふゅか
あ、それ便利だよね!特にWindowsのファイルパスを扱うときに、エスケープシーケンスで困ることがあるし、raw stringだとそのまま使えるから助かる♪

4.1. raw stringのメリット

my_string = 'C:\Users\myname\Documents'
print(my_string)

以上のようなコードがあったとき、以下のようなSyntaxErrorとなってしまいます

 my_string = 'C:\Users\myname\Documents'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

これはバックスラッシュをエスケープシーケンスとして解釈しているため、発生しています。特に、Windowsのファイルのパスはバックスラッシュで区切っている。そのため、ファイルパスをそのままコピーして文字列型にして、エラーが発生するといううということが起こります。下記のように、raw stringを用いると、バックスラッシュをエスケープシーケンスとして解釈せずに単なる文字として扱ってくれます。

my_string = r'C:\Users\myname\Documents'
print(my_string)

check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR