技術っぽいことを書いてみるブログ

PythonとかVue.jsとか技術的なことについて書いていきます。

Pythonの基本文法(変数・計算・IF文)

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

最後に・・・

上述の事くらいは、他の言語と大きな違いはありません。
次は、ループとリスト・ディクショナリ・関数などを勉強して記事にします。

お読みいただき、ありがとうございました。