gijyutsu-keisan.com

データ型・変数

3.Python文字列

  1. 文字列認識
  2. エスケープシーケンス
  3. 文字列の結合
  4. 文字列の繰り返し
  5. 文字列の長さ
  6. 文字列の抽出
  7. 文字列内の検索など

(1)文字列認識

Python3はUnicode標準に対応しているので、英数半角字だけでなく日本語も使えます。
>>> a = ’ハロー’
>>> b = ’Hello’
>>> a
'ハロー'
>>> b
'Hello'
文字列を’’(シングルクォーテーション)または””(ダブルクォーテーション)のどちらで囲うことで、str型として扱われます。 ’’で囲う場合は文字列内の”を文字列として認識し、””で囲う場合は’を文字列として認識します。
>>> a='abcd"e"fg'
>>> b="abcd'e'fg"
>>> a
'abcd"e"fg'
>>> b
"abcd'e'fg"

節はじめに戻る


(2)エスケープシーケンス

改行やタブの挿入などは、エスケープシーケンスと呼ばれる特殊文字によって表されます。
例えば改行(\n)を使う場合、次のようします。
>>> a='あいうえお\nかきくけこ'
>>> print(a)
あいうえお
エスケープシーンでよく使うものを挙げておきます。
エスケープシーケンス 対応
\n 改行
\r キャリッジリターン
\t 水平タブ
\ (改行) 文字列を途中で改行する(ソースが長くなる場合などに使う)
\* *そのもの(例えば\\ → \、\' → '、\" → ")

節はじめに戻る


(3)文字列の結合

“+”演算子を使って“文字列 + 文字列 + ・・・”とすることで複数の文字列を結合できます。
>>> a='あいうえお'
>>> b='かきくけこ'
>>> c='さしすせそ'
>>> a+b+c
'あいうえおかきくけこさしすせそ'

節はじめに戻る


(4)文字列の繰り返し

“*”演算子を使って“文字列*(回数)”とすることで文字列を複数回繰り返せます。
>>> 'a'*5
'aaaaa'
>>> 'abc'*10
'abcabcabcabcabcabcabcabcabcabc'

節はじめに戻る


(5)文字列の長さ取得

文字列の長さを取得するには“len()”を使います。
>>>len('abcde')
5

節はじめに戻る


(6)文字列の抽出

文字列の中から指定した位置の文字を抽出することができます。
>>> moji='abcdefghijklmnopqrstuvwxyz'
>>> moji[0]		#文字列の先頭文字(先頭は0番から)
'a'
>>> moji[3]		#文字列の先頭から4番目の文字
'd'
>>> moji[-1]		#文字列の1番最後の文字
'z'
>>> moji[-3]		#文字列の最後から3番目の文字
'x'
>>> moji[:3]		#文字列の先頭~先頭から3番目の文字
'abc'
>>> moji[20:]	#文字列の先頭から21番目~最後の文字
'uvwxyz'
>>> moji[3:6]	#文字列の先頭から4番目~先頭から7番目の文字
'def'
>>> moji[3:-3]	#文字列の先頭から4番目~最後から4番目の文字
'defghijklmnopqrstuvw'
>>> moji[::3]	#文字列を先頭から2文字とびで抽出
'adgjmpsvy'
>>> moji[5:20:3]	#文字列の先頭から4文字目~19文字目の範囲を2文字とびで抽出
'filor'

節はじめに戻る


(7)文字列内の検索など

文字列’abc def ghi jkl abcd efgh ijkl abcde fghij klmno’に対していろんなチェックをしてみます。
>>> moji='abc def ghi jkl abcd efgh ijkl abcde fghij klmno'

>>> moji.startswith('abc')		#文字列の先頭が'abc'かどうか?
True
>>> moji.startswith('def')
False
>>> moji.endswith('mno')		#文字列の最後が'mno'かどうか?
True
>>> moji.endswith('klmn')
False
>>> moji.find('ghi')		#文字列の中で'ghi'が最初に現れる箇所の番号
8
>>> moji.find('acb')		#文字列の中で'acb'が含まれない場合は“-1”を返す
-1
>>> moji.rfind('abc')		#文字列の中で'abc'が最後に現れる箇所の番号
31
>>> moji.count('abc')		#文字列の中で'abc'が含まれる個数
3

>>> moji.upper()			#文字列をすべて大文字に変換
'ABC DEF GHI JKL ABCD EFGH IJKL ABCDE FGHIJ KLMNO'
>>> moji.lower()			#文字列をすべて小文字に変換
'abc def ghi jkl abcd efgh ijkl abcde fghij klmno'

>>> moji.replace('abc','z')		#文字列内の'abc'を'z'に変換
'z def ghi jkl zd efgh ijkl zde fghij klmno'
>>> moji.replace('abc','z',1)		#文字列内の'abc'を'z'に1回だけ変換
'z def ghi jkl abcd efgh ijkl abcde fghij klmno'
文字列を大文字にしたり小文字にしたりもできます。
>>> moji.upper()			#文字列をすべて大文字に変換
'ABC DEF GHI JKL ABCD EFGH IJKL ABCDE FGHIJ KLMNO'
>>> moji.lower()			#文字列をすべて小文字に変換
'abc def ghi jkl abcd efgh ijkl abcde fghij klmno'
文字列内の指定した文字を置き換えることができます。
>>> moji.replace('abc','z')		#文字列内の'abc'を'z'に変換
'z def ghi jkl zd efgh ijkl zde fghij klmno'
>>> moji.replace('abc','z',1)		#文字列内の'abc'を'z'に1回だけ変換
'z def ghi jkl abcd efgh ijkl abcde fghij klmno'

節はじめに戻る


参考文献

関連ページ