見出し画像

Python - 文字列①

このnoteでは、プログラム初心者にむけて、Pythonで文字列を扱う際の基本的な知識と、実際の使い方について記載しています

このnoteを読んでわかる・できること
・文字列とは何か理解できる
・数字の数値型 / 文字列型の違い
・文字列の書き方

noteの中で紹介してるコードは、コンソールなどで実際に動かして、何がどうなっているのか確認・理解しながら進めることをお勧めします。

プログラミングは実際に動かすことがとても重要で、書かれているものを読むだけの学習に比べ、習得するスピードもとても早いです。

是非内容を読むだけではなく、実際に動かしてみてください。


文字列とは

文字列とはデータ型の一種(str型)のことで、主にシングルクォートや、ダブルクォートを使って作成します。

具体的には、利用者向けに出力するメッセージを作成するときなどに使います。

① シングルクォートを使った文字列
a = '文字列①'

② ダブルクォートを使った文字列
a = "文字列②"


数字の扱われ方の違い

数字は、データ型として「数字(int型)」「文字列(str型)」のどちらでも使うことができます。

何かを計算する時は数字、何かメッセージ上に数字を書く場合は文字列などと用途によって使い分けます。

以下のように、計算式をシングルクォートで囲む/囲まない結果で、同じ文字であっても結果・データ型が異なっていることがわかります。

>> ① 文字を数字として扱う場合
>> num = 2 + 2
>> print(num, type(num))
4 <class 'int'>

>> ① 文字を文字列として扱う場合        
>> msg = '2 + 2'
2 + 2 <class 'str'>



文字列の書き方(単一・複数行)

文字列は、1行で全ての文字を記載する場合と、複数業に渡って記載する場合とで書き方が異なります。

■単一行を書く場合
① シングルクォートまたはで囲む
② ダブルクォートで囲む

■複数行を書く場合
③ シングルクォート(×3)で囲む
④ ダブルクォート(×3)で囲む


① シングルクォートまたはで囲む
”文字列”として扱いた文字の両サイドを、シングルクォート[ ' ] で囲みます。

>> a = '例1'
>> print(a, type(a))
例1 <class 'str'>


② ダブルクォートまたはで囲む
”文字列”として扱いた文字の両サイドを、ダブルクォート[ " ] で囲みます。

>> b = "例2"
>> print(b, type(b))
例2 <class 'str'>


③シングルクォート(×3)で囲む
複数行にわたる文字列は、①②の記法で扱うことができません。
※2行目を書く前にSyntaxError(構文エラー)が出力されます。

実際に以下のような複数行にわたる文字列を出力してみましょう。

1行目
2行目
3行目


シングルクォートを使った場合

>> a = '1行目
 File "<stdin>", line 1
   a = '1行目
           ^
SyntaxError: EOL while scanning string literal

2行目を書く前に、エラーが出力されていることがわかります。
※ダブルクォートで行っても結果は変わりません。


シングルクォート(×3)を使った場合

>> a = '''1行目
... 2行目
... 3行目'''
>> print(a, type(a))
1行目
2行目
3行目 <class 'str'>

正常に出力までできていることがわかります。



④ダブルクォート(×3)で囲む
③と同じです。

>> a = """1行目
... 2行目
... 3行目"""
>> print(a, type(a))
1行目
2行目
3行目 <class 'str'>


複数行の綺麗な書き方

複数行は、前章で説明した方法でも記載できますが。
記載位置の先頭が統一されていないため、可読性の悪いコードになってしまいます。

>> a = '''1行目
... 2行目
... 3行目'''
>>
>> print(a)
1行目
2行目
3行目
>>

では、シングルクォートの直後に改行を入れてみましょう。

>> a = '''
... 1行目
... 2行目
... 3行目
... '''
>>
>> print(a)

1行目
2行目
3行目

>>

みやすいコードになりました。
しかし、この記載方法ですと、print()にて出力した結果の前後に改行が含まれてしまっています。

解決:バックスラッシュ(/)を入れる
複数行にわたって文字を記載するときは、以下のようにシングルクォート(×3)の直後・直前(前行)にバックスラッシュ(/)を追記することで、可読性の高いコードになります。
*バックスラッシュはMacの場合 < Option(⌥) ] + [ ¥ ] >で入力できます。

a = '''\
... 1行目
... 2行目
... 3行目\
... '''
>>
>> print(a)
1行目
2行目
3行目        
>>

この記事が気に入ったらサポートをしてみませんか?