文字列と式

20.3. 文字列と式

文字列 #

文字列と、その連結という操作を導入します。 Pythonでは、文字を ' single quote (または " double quote) で囲んだものを、文字または文字列として扱います。 文字列は、+ 演算子で連結することができます。

('a' + 'b') + 'c'
'abc'
\( \underbrace{\underbrace{(\texttt{'a'+ 'b'})}_{\texttt{'ab'}}\texttt{ + 'c'}}_{\texttt{'abc'}} \)
('Madam' + 'Im') + 'Adam'
MadamImAdam
\( \underbrace{\underbrace{(\texttt{'Madam' + 'Im'})}_{\texttt{'MadamIm'}}\texttt{ + 'Adam'}}_{\texttt{'MadamImAdam'}} \)
式の定義を文字(列)を含むように拡張しました
(1) 原始式 (atom) : - 数そのもの (e.g., `3`, `5`, `3.1415`) - 定数 (e.g., `math.pi`, `math.e`) - [New!] 文字列そのもの ('a', "a", 'hello', 'X', '99') (評価した値は自分自身)
(2) 式と演算子の適切な組合せ : - 数の演算 e.g., `(3+5)`, `(1+(2+3))` - [New!] 文字列の演算 e.g., `('hello'+'world')` (3) 関数 : e.g., `math.floor(3.14)`, `add(1+2, 3)`
\(\text{`}\) backquote は、似て非なる文字なので、注意してください

文字列を返す (評価すると文字列になるような) 関数を作成することもできます。 関数の作成方法は、数の関数で紹介した基本パターンと同じです。

def greetings(name):
    return 'Hello, ' + name + '-san!'
greetings('Komakkero')
'Hello, Komakkero-san!'
greetings('May')
'Hello, May-san!'

#

+ 演算子の動作が数と文字で異なることから分かるように、Pythonでは数と文字を区別して扱っています。 この区別を (type) と呼びます。

式は、型 (かた, type) を持ちます。 演算子の意味 ( \(\approx\) 動作) は型毎に定義されます。 詳細は割愛しますが type(式) により、Python に型を尋ねることができます。

これまで紹介した式の型を確認してみましょう。`int` と `float` が数、`str` が文字列の意味です。
type(3)
int
| 入力 | 応答 | |----------------|---------| | `type(3)` | `int` | | `type(3+5)` | `int` | | `type(3.1415)` | `float` | | `type('abc')` | `str` |

型と演算子が合わないと エラー `TypeError` になります。 例えば、加算は数と文字列両方に対して定義されていますが、減算は数のみです。
5 - 3
2
'5' - '3'
TypeError: unsupported operand type(s) for -: 'str' and 'str'
exercise
('hello!' * 3) を Python はどう評価するでしょうか。まず結果を自分で予想し、次にColabで確認してみましょう。
  • Hello!
  • 3
  • TypeError
  • その他

型変換 #

int(文字列) として、文字列が整数を表すときに、対応する数を得ることができます。

int('2')
2
int('5') - int('3')
2

int(文字列, N) として N進数を10進数に変換する機能も便利です。

int('a', 16)
10
int('10', 16)
16
int('ff', 16)
255
int('111', 2)
7

数から文字列から作ることもできます。10進数表現の文字列を得るときは str, 2, 8, 16進数表現の文字列を得るときはそれぞれ bin, oct, hex を使います。

str(255)
255
bin(255)
0b11111111
hex(255)
0xff

0b0x は、2進数や16進数の目印です。

2, 8, 16進数と 10進数の対応については前の章の説明を参照してください。 12.3. bit列と2進数
式と評価 文字列と式 ベクトルの計算と関数の図示
このサイトは開発版の はいぱーワークブック です.