20.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 - 32'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進数