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




1. str型
Pythonで文字列はstr型として扱われます。
1.1. 文字列
文字列型 ( str ) は””(ダブルクオーテーション)や”(シングルクオーテーション)を使って定義します。
"abcdefghi"
"あいうえお"
"1234"
ここで気を付けたいことは”1234″は1234ではないということです。”1234″は型がstrに対して、1234は型がintだからです。

1.2. 型の確認
type()を使うと、その変数の型を確認できるため実行すると、
tall="2021m"
print(type(tall)) #<class 'str'>
とわかるように、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 を付けます。


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の魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!