Pythonの基本文法から学習します。
先日、Anacondaをインストールして、Pythonを動かす環境が整いましたので、
早速、基本的な文法から勉強していきます。
変数
とくに型を指定せずに、変数を使うことができます。
a = 123 b = 3.14 c = "ABCDEFG"
Pythonは、「動的型つき言語」に分類されるらしく、
状況に応じて、型が自動で決定されるようです。
type関数で、自動で決定された型を確認してみます。
>>> type(a) <class 'int'> >>> type(b) <class 'float'> >>> type(c) <class 'str'>
代入した値で、型がint・float・strと自動で決定されています。
なお、変数の大文字・小文字は区別されるようです。
ためしに、print(A)で、変数aの内容を出力してみます。
>>> print(A) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'A' is not defined
「Aなんて変数ないよ」と怒られます。
自動で型が決定されるなら、123×3.14の結果を確認してみます。
>>> print(A) >>> x = a * b >>> print(x) 386.22 >>> type(x) <class 'float'>
想定どおり、float(浮動小数)クラスとして型が設定されています。
計算
計算は、+-*/が使えます。累乗は、**となります。
>>> 100 + 100 200 >>> 200 - 100 100 >>> 500 / 200 2.5 >>> 10 * 20 200 >>> 10 ** 10 10000000000
このあたりは、Javaとかと変わりませんね。
(Javaで計算する場合は、BigDecimalとかを通常は使用しますが…)
で…こんな結果を発見しました。
>>> 10 * 3.14 31.400000000000002
よくある2進数での計算による誤差です。
PythonでもDecimalクラスを使用して、計算するようですね。
>>> from decimal import Decimal >>> f1 = Decimal("10") >>> f2 = Decimal("3.14") >>> print(f1 * f2) 31.40
正しく計算されました。
ここでポイントは、Decimal()のパラメータは文字列で指定することです。
Decimal(10)のようにしてすると・・・
>>> from decimal import Decimal >>> f1 = Decimal(10) >>> f2 = Decimal(3.14) >>> print(f1 * f2) 31.40000000000000124344978758
やはり誤差がでます。
分岐
処理の分岐は、if-elseを使用します。
>>> a = 1 >>> if a == 1: ... print("true") ... else: ... print("false") ... true
等価判定は==、不等価判定は!=となります。
インデントは、空白4文字でインデントします。
試しにインデントなしで、コーディングしてみます。
>>> a = 1 >>> if a == 1: ... print("aaa") File "<stdin>", line 2 print("aaa") ^ IndentationError: expected an indented block
IndentationErrorというエラーになります。
Javaで云うelseifもありますが、Pythonでは「elif」と記述します。
>>> a = 10 >>> if a == 5: ... print("a") ... elif a == 10: ... print("b") ... else: ... print("c") ... b
最後に・・・
上述の事くらいは、他の言語と大きな違いはありません。
次は、ループとリスト・ディクショナリ・関数などを勉強して記事にします。
お読みいただき、ありがとうございました。