文字列型とは
Pythonで文字列を扱う場合は文字列型の変数やシングル/ダブルクォーテーションをつかって表現します
このときシングルクォーテーションとダブルクォーテーションによる違いはありません
'hello'
"hello"
上の2つはPython上では同じ扱いになります
Python上で扱うデータのことをリテラルといいますが、文字列リテラルを実際に表示確認するときはprint関数を用いて表示することができます
print("Hello")
print('Hello')
実際の表示結果は両方とも変わらないことが確認できると思います
変数として文字列を扱うには?
変数に文字列を代入するには、型の決まっていない変数へ文字列を入れるかキャストして明示的に文字列を入れてあげる必要があります
代入の場合は
a = "Hello"
print(a)
実際に動かしてみましょう
キャストの場合は
a = str("Hello")
print(a)
こちらも実際に動かしてみます
どちらも変数に文字列型としてデータを代入してあげると変数も文字列型として扱うことができます
複数行もしくは長い文字列を扱うには?
プログラムコード上で複数行もしくは長い文字列を扱うときの方法について紹介します
まずはただひたすら一行にまとめる方法
a = "北海道,青森,岩手,宮城,秋田,山形,福島,茨城,栃木,群馬,埼玉,千葉,東京,神奈川,新潟,富山,石川,福井,山梨,長野,岐阜,静岡,愛知,三重,滋賀,京都,大阪,兵庫,奈良,和歌山,鳥取,島根,岡山,広島,山口,徳島,香川,愛媛,高知,福岡,佐賀,長崎,熊本,大分,宮崎,鹿児島,沖縄"
都道府県を羅列してみてかなりの長さですがまずはこちらが基本になります
この方法はシンプルですが、実際の開発現場とかでは読みづらいコードの1つとしてコード規約で制約されていたり、仮に制約がなかったとしてもあまり推奨はされない場合が多いです
ある程度長い文字列を扱う場合は、リソースファイルやDBで取り扱うことを検討しましょう
他にも複数行で長い文字列を扱うこともできます
その方法は、ダブルクォーテーションを3つ連続で並べる形で表現できます
a = """福岡, 佐賀,
長崎, 熊本,
大分, 宮崎,
鹿児島, 沖縄"""
print(a)
動かした結果はこちらになります
もちろんシングルクォーテーション3つでも表現できます
a = '''福岡, 佐賀,
長崎, 熊本,
大分, 宮崎,
鹿児島, 沖縄'''
print(a)
こちらも動かした結果を見てみましょう
実際の開発現場では、文字列はリソースファイルやデータベースに格納するため、プログラムコード上に長い文字列を扱うことはないので使う機会が限定されるとは思います
Pythonの文字列型は配列として扱える
Python上での文字列は他のプログラム言語と同じくunicodeのバイト型の文字として扱います
ただし、文字列データ型ではなく長さ1の配列であることは注意が必要です
Pythonの文字列型変数でそれぞれの文字を抜き出すには[]を使います
a = "今年の夏はとても暑い"
print(a[1])
実際に動かしてみましょう
配列は0から順番に始まります
実際にそれぞれの文字を取り出すときは下のような形になります
0:今
1:年
2:の
3:夏
4:は
5:と
6:て
7:も
8:暑
9:い
Pythonの文字列型をループで抜き出す
Pythonの文字列型は配列なため、forループ処理を使って1文字ずつ抜き出すことができます
for x in "東京で新たにコロナ専門病院発足":
print(x)
実際に動かしてみた結果がこちらになります
文字列の長さを調べる
変数に格納されている文字列の長さを調べるにはlen()関数を使用します
a = "SNSで話題のグルメ"
print(len(a))
入力フォームで想定以上に文字列が入力されていないかチェックしたりするときに使用します
実際に動かしてみて確認してみましょう
文字列の中に特定の文字やキーワードがないか調べる
文字列の中に特定の文字やキーワードが含まれていないかどうかしらべるためにはin()関数を使用します
a = "このお店のメインメニューは、そばとうどんとうな丼だ"
print("うな丼" in a)
文字列の検索や特定のデータを抽出したいときに使用します
検索対象の文字列が含まれているとtrue、含まれていないときはfalseとなります
trueの場合はこちら
falseの場合はこちら
実際のプログラム上では、ifを使った分岐条件と合わせて使います
a = "このお店のメインメニューは、そばとうどんとうな丼だ"
if "そば" in a:
print("そばがメニューにある!!")
では、実際にうごかしたところをみてみましょう
文字列の中に特定の文字やキーワードが含まれていないことを調べる
逆に特定のキーワードや文字が含まれていないことを確認する方法もあります
そのときは、not in を使用します
a = "このお店のメインメニューは、そばとうどんとうな丼だ"
if "かつ丼" not in a:
print("カツ丼がメニューにない!!")
実際に動かしてみましょう
こちらも文字列を扱うときに使用します
特に予め抽出対象外としたい文字列がわかっている場合はこちらを使用します
if “検索したいキーワード” in [検索対象の文字列]