32.3. 文字列と式
文字列 #
文字列と、その連結という操作を導入します。
Pythonでは、文字を '
single quote (または "
double quote) で囲んだものを、文字または文字列として扱います。
文字列は、+
演算子で連結することができます。
('a' + 'b') + 'c'
('Madam' + 'Im') + 'Adam'
式の定義を文字(列)を含むように拡張しました
- (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')
greetings('May')
型 #
+
演算子の動作が数と文字で異なることから分かるように、Pythonでは数と文字を区別して扱っています。
この区別を 型 (type) と呼びます。
式は、型 (かた, type) を持ちます。
演算子の意味 (
\(\approx\)
動作) は型毎に定義されます。
詳細は割愛しますが type(式)
により、Python に型を尋ねることができます。
これまで紹介した式の型を確認してみましょう。int
と float
が数、str
が文字列の意味です。
type(3)
入力 | 応答 |
---|---|
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'
('hello!' * 3)
を Python はどう評価するでしょうか。まず結果を自分で予想し、次にColabで確認してみましょう。Pythonでは加算と整合するよう定義されています。他の多くの言語ではエラーになります。
型変換 #
int(文字列)
として、文字列が整数を表すときに、対応する数を得ることができます。
int('2')
int('5') - int('3')
int(文字列, N)
として N進数を10進数に変換する機能も便利です。
int('a', 16)
int('10', 16)
int('ff', 16)
int('111', 2)
数から文字列から作ることもできます。10進数表現の文字列を得るときは str
, 2, 8, 16進数表現の文字列を得るときはそれぞれ bin
, oct
, hex
を使います。
str(255)
bin(255)
hex(255)
0b
や 0x
は、2進数や16進数の目印です。
2, 8, 16進数と 10進数の対応については前の章の説明を参照してください。
12.3. bit列と2進数