【Python入門】インタプリタでコマンドの続き(文字列編)

Python
スポンサーリンク

前回のコマンドの続きです。

インタプリタを使って、簡単なコマンドを実際に入力してみて結果を確認してみましょう。

[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
>>>

参考

3. 形式ばらない Python の紹介 — Python 3.7.3rc1 ドキュメント

Python まとめページ

独学でPythonを覚えよう
今話題のプログラム言語「Python」を独学で勉強していく内容を、アウトプットします。僕が今回選んだ教材は、python.jp の Pythonチュートリアル です。このチュートリアルに沿って進んでいく予定です。言語は Pyth...

前回へ戻る

【Python入門】インタプリタを使う
Python を始めるには何が必要でしょうか。そうです。Python をインストールしなければなりません。しかし Debian stretch にはもう Python が入っていました。最初は勉強のために、Python インター...

次回へ進む

【Python入門】インタプリタでコマンドの続き(リスト編)
前回のコマンドの続きです。インタプリタを使って、簡単なコマンドを実際に入力してみて結果を確認してみましょう。

 

[q3-adsense01]

コメント

  1. […] 【Python】インタプリタでコマンドの続き(文字列編) […]

  2. […] 【Python入門】インタプリタでコマンドの続き(文字列編) […]

  3. […] 【Python入門】インタプリタでコマンドの続き(文字列編) […]