Python入門2
****************************************
数値と算術演算子
****************************************
数値
Pythonで扱う数値は、整数と浮動小数点数の2種類があります。
整数の上限は存在しません。
浮動小数点数では64ビット幅の上限となります。
演算子
数値同士の演算子には以下のものがあります。
+ 加算
- 減算
* 乗算
/ 除算
// 切り捨て除算
% 剰余
** べき乗
divmod 商と余り
Pythonの対話型インタプリタで確認してみよう。
加算
>>>3 + 7
10
減算
>>>3 - 7
-4
乗算
>>>3 * 7
21
除算
>>>5 / 2
2.5
切り捨て除算
>>>5 / 2
2
剰余
>>>11 % 3
2
べき乗
>>>3 ** 2
9
商と余り
>>>divmod(11,3)
(3,2)
>>>from decimal import *
>>>Decimal('0.1') + Decimal('0.1') + Decimal('0.1')
Decimal('0.3')
****************************************
変数
****************************************
変数にはPtthonのオブジェクトを代入できます。
数値や文字列など、変数に代入できます。
変数への値の代入は次のように記述します。
>>>x = "abc"
文字列を代入しています。
「"」ダブルクォーテーションで囲んでいますが、「'」シングルクォーテーションで囲んでもかまいません。
>>>x = 'abc'
対話型インタプリタでは、変数名を入力すると変数の内容を表示します。
>>>x
'abc'
変数の型はPythonが自動的に決定します。
変数の型を確認するには、type関数を使います。
>>>type(x)
<class 'str'>
変数名やクラス名のような識別子として有効な文字列は先頭文字には半角英文字かアンふどダースコアが使えます。
二文字目以降は半角文字列とアンダースコアに加えて数字も使えます。
変数の型とクラス名
整数型 int
浮動小数点型 float
複素数型 complex
文字列型 str
浮動小数点算術演算 decimal
有理数型 fractions
****************************************
キーワード
****************************************
False, class, finally, is
return, None, continue, for
lambda, try, True, def
from, nonlocal, while, and
del, global, not, with
as, elif, if, or
yleld, assert, else, import
pass, break, except, in
raise
****************************************
文字列操作
****************************************
format
str関数
repr関数
文字列はUnicodeで処理されます。
文字列を囲む引用符はシングルクォーテーション「'」、ダブルクオーテーション「"」、トリプルシングルクォーテーション「'''」、トリプルダブルクォーテーション「"""」がある。
最初にシングルクォーテーション「'」、ダブルクオーテーション「"」の例です。
>>>x = 'ab cd ef'
>>>print(x)
'ab cd ef'
>>>x = "ab cd ef"
>>>print(x)
'ab cd ef'
トリプルシングルクォーテーション「'''」とトリプルダブルクォーテーション「"""」は、複数行の文字列を入力できます。
「'''」および「"""」の三連引用符で囲まれた部分は、改行も含めて複数行の文字列を表す。
>>>x = '''abcd
...efg'''
>>>print(x)
abcd
efg
>>>x = """abcd
...efg"""
>>>print(x)
abcd
efg
文字列では、「+」と「*」の演算子が使えます。
「+」は2つの文字列を繋げます。
>>>'abc' + 'def'
'abcdef'
「*」は文字列を繰り返します。
>>>'abc' * 3
'abcabcabc'
文字列のスライス
>>>x = 'abcdefghijk'
0から数えて1の文字を表示します。
>>>x[1]
'b'
0から数えて2の文字以降をすべて表示します。
>>>x[2:]
'cdefghijk'
3の文字から5の文字の手前までを表示します。
>>>x[3:5]
'de'
1の文字から7の文字の手前までの文字をステップ2づつの文字を表示します。
>>>x[1:7:2]
'bdf'
文字数を調べる。len関数を使います。
>>>x = 'abc def ghi'
>>>len(x)
11
文字列を何らかの文字(区切り文字)で区切る。splitメソッドを使います。
ここでは、半角スペースを区切り文字とした例です。
>>>x = 'abc def ghi'
>>>x.split(" ")
['abc','def','ghi']
次は、文字列を連結する方法です。joinメソッドを使います。
ここではアンダースコアで文字列を連結する例です。
>>>"_".join(['abc', 'def', 'ghi'])
'abc_def_ghi'
次に文字列中で指定のキーワードが出現する位置を探すときはfindメソッドを使います。
0から数えた値です。
>>>x = 'abc def ghi'
>>>x.find("ef")
5
文字列の英数字をすべて大文字にする。upperメソッドを使います。
>>>x.upper()
'ABC DEF GHI'
エスケープシーケンスを使って改行する例
>>>x = "a\nbc\nde"
>>>print(x)
a
bc
de
repr(x)
"a\\nbc\\nde"
print(eval(repr(x))
a
bc
de
文字を右揃えにします。rjustメソッドを使います。
str.rjust(width[, fillchar])
X = 3
str(x).rjust(5,"0")
'00003'
マイナスを表現する場合、
>>>str(-3).rjust(5,"0")
'000-3'
マイナスを表現する場合、
>>>str(-3).zfill(5)
'-0003'
文字を埋め込みます。
>>>x = "ab{}de{}g"
>>>x.format("c","f")
'abcdefg'
番号で何番目の文字かを指定できます。
>>>x = "ab{1}de{0}g"
>>>x.format("f", "c")
'abcdefg'
キーワードによる文字指定
x = "ab{one}de{twe}g"
x.format(one = "c", twe = "f")
'abcdefg'
数字を文字として扱う。
>>>str(7)
文字を数字として扱う
>>>int('7')
文字の長さを取得する
>>>len('abc')
3
****************************************
エスケープシーケンス
****************************************
\newline \と改行文字を無視
\\ \の表示
\' シングルクォーテーションの表示
\" ダブルクォーテーションの表示
\a ビープ音
\b バックスペース
\f 改ページ
\n 改行
\r 復帰
\v 垂直タブ
\N{name} Unicodeデータピース中でnameという名前の文字
\uxxxx 16ビットxxxx(16進数)に対応すねUnicode文字
\Uxxxxxxxx 32ビットxxxx(16進数)に対応すねUnicode文字
\newline \と改行文字を無視
\\ \の表示
>>>print('abc\\def\\ghi')
abc\def\ghi
文字列の頭に「r」を入れると「\」が1つで済みます。
>>>print(r"dir01\dir02")
dir01\dir02
\' シングルクォーテーションの表示
>>>print('abc\'def\'ghi')
abc'def'ghi
\" ダブルクォーテーションの表示
>>>print('abc\"def\"ghi')
abc"def"ghi
「\n」(改行)の例
>>>print('abc\ndef\nghi')
abc
def
ghi
\r 復帰
\v 垂直タブ
\N{name} Unicodeデータピース中でnameという名前の文字
\uxxxx 16ビットxxxx(16進数)に対応すねUnicode文字
\Uxxxxxxxx 32ビットxxxx(16進数)に対応すねUnicode文字