前回のコマンドの続きです。
インタプリタを使って、簡単なコマンドを実際に入力してみて結果を確認してみましょう。
[q3-adsense01]
コマンドを打ってみよう(文字列編)
文字列型(string)
文字列は、単引用符 ('...'
) もしくは二重引用符 ("..."
) で囲みます。
どちらも同じ結果になります。
>>> 'Hello world'
'Hello world'
>>> "Hello world"
'Hello world'
>>>
単引用符「'
」を文字に入れたい場合は、二重引用符「"
」を使うか、バックスラッシュ「\
」を前に入れます。
バックスラッシュ「\
」は、様々な記号をそのまま表示させることが出来ます。
>>> 'I don't wanna' # エラーになる
File "", line 1
'I don't wanna'
^
SyntaxError: invalid syntax
>>> "I don't wanna" # 二重引用符「"」を使う
"I don't wanna"
>>> 'I don\'t wanna' # バックスラッシュ「\」を使う
"I don't wanna"
>>>
二重引用符「"
」でも同じです。
>>> "Hello "python" world" # エラーになる
File "", line 1
"Hello "python" world"
^
SyntaxError: invalid syntax
>>> "Hello \"python\" world" # 二重引用符「"」にバックスラッシュ「\」をつける
'Hello "python" world'
>>>
print() 関数
print()
関数を使うと、囲っている引用符を落として見やすくしてくれます。
プログラム内で文字列を表示するのによく使います。
>>> print("I \"don't\" wanna")
I "don't" wanna
>>>
print()
内では、文字列の前に「r
」をつけることで、そのまま表示をしてくれます。
>>> print(r"I \"don't\" wanna")
I \"don't\" wanna
>>>
三連引用符
文字列は三連引用符 ("""..."""
や '''...'''
) を使うことで複数行に渡って書くことができます。
>>> print("""
... Python 3.5.3 (default, Jan 19 2017, 14:11:04)
... [GCC 6.3.0 20170118] on linux
... Type "help", "copyright", "credits" or "license" for more information.
... """)
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
行末に「\」を入れると改行しなくなります。
>>> print("""\
... Python 3.5.3 \
... [GCC 6.3.0 20170118] on linux \
... """)
Python 3.5.3 [GCC 6.3.0 20170118] on linux
>>>
文字列の連結と反復
文字列は「+
」で連結できます。「*
」で反復させます。
>>> 'G' + 'o' * 10 + 'gle'
'Goooooooooogle'
>>>
リテラル(引用符に囲われた文字列)同士であれば、半角スペースで連結できます。
長い文字を改行で分けて入力するときに便利です。
変数や式、数字を入れるとエラーがでます。
>>> 'Py' 'thon' #リテラル同士
'Python'
>>> a = 'Py'
>>> a 'thon' # 変数とリテラルではエラーがでる
File "", line 1
a 'thon'
^
SyntaxError: invalid syntax
>>> 'G' ('o' * 10) 'gle' # 式もエラーになる
File "", line 1
'G' ('o' * 10) 'gle'
^
SyntaxError: invalid syntax
>>> a + 'thon' # 変数を結合する場合は「+」を使う
'Python'
>>>
[q3-adsense01]
インデックス表記
文字列はインデックス表記 (添字表記) することが出来ます。
「[]
」を使うことで文字列の一部分を取り出すことが可能になります。
最初の文字のインデックスが 0 になることに注意してください。
>>> word = 'Python'
>>> word[0] # 最初の文字
'P'
>>> word[5] # 最初の文字から数えて5番目の文字
'n'
>>>
負の値を入れると反対から数えます。
負の場合は -1 から数えていきます。
>>> word[-1] # 最後から1番目の文字
'n'
>>> word[-6] # 最後から6番目の文字
'P'
>>>
文字列より大きいインデックスはエラーになります。
>>> word[42]
Traceback (most recent call last):
File "", line 1, in
IndexError: string index out of range
>>>
文字のスライス
スライスを使うと部分の文字列が取得できます。
文字と文字の間を切るとイメージしてください。
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
>>> word[0:2]
'Py'
>>> word[2:5]
'tho'
最初のインデックスを省略すると 0 とみなします。
2番目のインデックスを省略すると最後までとみなします。
>>> word[:2]
'Py'
>>> word[4:]
'on'
>>>
スライスの場合、大きい文字をいれてもエラーになりません。
>>> word[4:42]
'on'
>>> word[42:]
''
>>>
インデックスでの代入は不可
文字列のインデックスで指定した場所に代入を行うとエラーがでます。
>>> word[0] = 'J'
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
>>>
別な文字が必要な場合は文字列を新しく結合してください。
>>> 'J' + word[1:]
'Jython'
>>> word[:2] + 'py'
'Pypy'
>>>
len() 関数
len
関数は文字列の長さ(length)を返します。
>>> len(word)
6
>>>
参考

Python まとめページ

前回へ戻る

次回へ進む

[q3-adsense01]
コメント
[…] 【Python】インタプリタでコマンドの続き(文字列編) […]
[…] 【Python入門】インタプリタでコマンドの続き(文字列編) […]
[…] 【Python入門】インタプリタでコマンドの続き(文字列編) […]