ITメモ
Python / パイソン




【Python】「文字」の基本的な「使い方」

【Python】
「文字」の基本的な「使い方」







はじめに



「Python」で文字を取り扱うには、 簡単でもありますが、関数などで操作する時は、 色々と知識が必要になります。


Back

「Python」でプログラミングコードに「文字列」を記述する方法



「Python」で、
「プログラミング」の中に、
「文字列」を記述する場合は、

・"(ダブルクォート)
・'(シングルクォート)

で囲むことで、
「文字列」として指定することができる。

変数 = "Hello world"
変数 = 'Hello world'



「"(ダブルクォート)」「'(シングルクォート)」を、
「文字列」の中で、使用するためには、
「2つ」を使いこなす必要がある。

「文字列」の中で、
「文字列」を囲む記号
・"(ダブルクォート)
・'(シングルクォート)
を使用できるようになっているのは、
それぞれの記号を「文字列」の中で利用できるようにするため。


・「"」で「文字列」を囲むと、文字列内で 「'」が使用できる
・「'」で「文字列」を囲むと、文字列内で、「"」が使用できる


その他に、
\(バックスラッシュ)」を利用して、 文字列の中で、「"」「'」を利用する事もできる。

「"」で囲んだ文字列の中で「"」を、
「'」で囲んだ文字列の中で「'」を使用するには、
\(バックスラッシュ)」を用いて引用符を「エスケープ(無効化)」して使用する。





\(バックスラッシュ)」は、
他にも、いくつかの利用方法がある。


「バックスラッシュ(\)」の「使い方」

バックスラッシュ(\)を用いることで、複数行に分けることができます。
変数 = 'Sample \
Text'


「"(ダブルクォート)」「'(シングルクォート)」の前に、「 r」「 R」をつけると、「エスケープシーケンス」が無視される。
変数 = 'aaa\nbbb' # \n は「改行」とみなされる
変数 = r'aaa\nbbb' # \n は「\(バックスラッシュ)」と小文字「n」とみなされる


「三重ダブルクォート("""文字列""")」「三重シングルクォート('''文字列''')」 は、複数行にまたがった文字列が記述可能。
変数 = """Sample Test 01
Sample Test 02
Sample Test 03
"""
複数の文字列をスペースで区切ることで、連結可能。
print 'Sample' 'Text'



Back

エスケープシーケンス



「空白」「記号」「改行」「タブ」など、
「プログラム」でも使用されるものを、
「文字」で指定したものを「エスケープシーケンス」といい。

「プログラム」に影響しないように、
「エスケープシーケンス」を使用することで、
問題なく、
「文字列」などを出力したりすることができる。



「Python」の「エスケープシーケンス」一覧

エスケープシーケンス説明
\改行バックスラッシュと改行が無視される
\\バックスラッシュ(\)
\'シングルクォート(')
\"ダブルクォート(")
\aベル(BEL)
\bバックスペース(BS)
\fフォームフィード(FF)
\n改行(LF)
\r復帰(CR)
\tタブ(TAB)
\v垂直タブ(VT)
\nnn8進表記文字(nは0~7)
\xnn16進表記文字(nは0~f)
\uxxxxユニコード文字xxxx (例: u"\u3042")
\U....xxxxユニコード文字xxxxxxxx (例: U"\U00003042")
\N{name}Unicodeデータベース文字 (例: u"\N{HIRAGANA LETTER A}")


Back

文字列のフォーマット(%)



「Python」では、
「% 演算子」を用いて、
C言語の「printf()」関数に似た記法が可能。

SampleText = "Sample Number"
SampleNum = 987654321
msg = "Test Message: %s (%d)" % (SampleText , SampleNum)
print msg => Test Message: Sample Number (987654321)


文字列演算子の種類

%s文字列
%d整数
%f浮動小数点数
%x16進数
%o8進数
%%%自身を表示


変数 = "%s %s" % ("ABC", "DEF") #=> ABC DEF
変数 = "%s" % "ABC" #=> ABC
変数 = "%d" % 123 #=> 123
変数 = "%f" % 1.23 #=> 1.23
変数 = "%x" % 255 #=> ff
変数 = "%o" % 255 #=> 377
変数 = "%%%d" % 80 #=> %80

「%」に続く数値で、「文字幅」「桁数」を指定可能。

print "|%3s|" % 'ABC' #=> | ABC| : 右寄せ3文字分
print "|%-3s|" % 'ABC' #=> |ABC | : 左寄せ3文字分
print "|%3d|" % 123 #=> | 123| : 右寄せ3桁
print "|%-3d|" % 123 #=> |123 | : 左寄せ3桁
print "|%+3d|" % 123 #=> | +123| : ±符号付き
print "|%3.2f|" % 1.23 #=> | 1.23| : 全体桁数.少数点以下の桁数
print "|%05d|" % 123 #=> |00123| : 0埋め


Back

文字列のフォーマット「format()メソッド」



「format()」メソッドは、
文字列を配置するのに、使用される「メソッド」。

>>> "1:{} 2:{}".format("sample1","sample2")
>>> '1:sample1 2:sample2'

>>> "1:{1} 2:{0}".format("Position1","Position2")
>>> '1:Position2 2:Position1'

>>> "1:{Second} 2:{First}".format(First="Keyword1", Second="Keyword2")
>>> '1:Keyword2 2:Keyword1'


Back

文字列を検索する方法


文字列を検索するには、
「find」関数を利用する。
「find」関数は、検索したい文字を指定すると、 見つかった場合に、最初に見つかった文字の場所を、数字で返してくれる。
文字列の中に、検索文字がない場合は、「-1」を返す。



"検索対象の文字列".find("検索したい文字")
print "検索対象の文字列".find("検索したい文字")
変数名.find("検索したい文字")


#サンプルコード
print "Sample Text".find("p")

出力結果:3


Back

文字列を数える方法


文字列を数えるには、「count」関数を使用します。
指定した文字がいくつあるのかを数えてくれる関数で、
指定した文字がない場合は、「-1」を返してくれます。


print "Sample Text".count("x")

出力結果:9


Back

文字列の一部を取り出す方法


「Python」では、
文字列の一部を簡単に取り出すことができる。
文字列の番号を指定して、部分的な抽出が可能。


文字列を取り出すサンプルコード

print "Sample Text"[0]
print "Sample Text"[3:9]
print "Sample Text"[5:]
print "Sample Text"[-4:]

出力結果:
S
ple Te
e Text
Text


a = "Sample Text"[0] print a[0]
print a[1:4]
print a[3:]
print a[-4:]

出力結果:
S
amp
ple Text
Text



「インデクシング」による「文字列」の一部を取得する方法

「Python」では、
文字列の一部を取得することが、
簡単にできるようになっている。


一番シンプルなのは、「インデクシング」による取得。
文字に割り当てられた番号を指定するだけで、
簡単に文字列の一部分を取得することが可能。



「文字列」は、
文字ごとに、「インデクシング(番号付け)」されていている。

Sample Text
012345678910

上記のように、
最初の文字は、「0」から始まり、順に番号づけされてる。


「インデクシング(番号付け)」によって、
文字を抽出するには、
「文字列」の後に、「角括弧([])」の中に、数値を記述するだけ。

"Sample Text"[1] => a
"Sample Text"[-1] => t
"Sample Text"[1:4] => amp
"Sample Text"[1:] => ample Text
"Sample Text"[:4] => Samp


開始番号の文字から、
終了番号の一つ手前の文字までが抽出されます。


「文字列」の一部を取得して出力するサンプルコード

print"Sample Text"[1]
出力結果 : a


x = "Sample Text"[-1]
print x
出力結果 : t


x = "Sample Text"[1:4]
y = "Sample Text"[4:8]
z = "Sample Text"[8:10]
print x
出力結果 : amp
出力結果 : le T
出力結果 : ex


print"Sample Text"[:3]
print"Sample Text"[3:]
出力結果 :
Sam
Ple Text




Back

文字を結合する方法



「Python」で、 「文字列」を「結合」するには、

・「,」「+」を使用する方法
・「join」関数を使用する方法

がある。



「,」「+」を使用して「文字列」を「結合」する方法

文字を結合して出力するには、「,」「+」を使用して、 文字などを結合して表示する。

「,」で結合すると、「空白(スペース)」を入れて結合してくれる。
「+」で結合すると、「空白(スペース)」なしで結合してくれる。


print "Hello", "World"

出力結果:Hello World

print "Hello" + "World"

出力結果:HelloWorld



「join」関数を使用して「文字列」を「結合」する方法

文字列をつなぐには、「join」関数を使用して結合する。
「join」関数は、配列の状態になっている文字を、 指定の文字を挟んで結合することができる。



「join」関数の使い方

"結合する文字列間に挿入する文字".join(結合したい文字列の配列変数)
print "結合する文字列間に挿入する文字".join(結合したい文字列の配列変数)
変数名 = "結合する文字列間に挿入する文字".join(結合したい文字列の配列変数)



入力コマンド:
a = "Sample Text". split(" ")
print a
b = " ".join(a)
print b


出力結果:
['Sample', 'Text']
Sample Text



Back

文字を分割する方法


文字を分割したいときは、「split()」関数を使用して文字を分割してから出力する。
変数に格納せずとも、関数を結合することで、結果をそのまま出力することが可能。


print "Hello World".split(" ")

出力結果:['Hello', 'World']


print "Hello World".split(W)

出力結果:['Hello ', 'orld']


print "Hello World".split(e)

出力結果:['H', 'llo World']


Back

文字を置き換える方法


文字列を置き換えて出力するには、 「replace()」関数を使用して、 文字を置き換える。


print "置き換える対象文字列".replace("置き換える対象文字","置き換える文字")


print "OutPut Test Now!!".replace("P","O")

出力結果: OutOut Test Now!!


Back

文字を「大文字」「小文字」に変換する方法


文字列を「大文字」「小文字」に変換するには、
「upper」「lower」関数を使用すると、簡単に「大文字」「小文字」変換ができる。

1文字だけ「大文字」「小文字」変換をしたい場合は、「replace()」関数を使用して、1文字ずつ変換することが可能。


print "Hello World".upper()

出力結果:HELLO WORLD


print "Hello World".lower()

出力結果:hello world



Back