print("Hello, World!")Hello, World!
本章では,本書を読み進めるために必要な Python の文法をまとめる.変数,数値の計算,リスト,関数,条件分岐,繰り返し,モジュールの使い方を扱う.
ここでは,Python を系統的に学ぶことを目的とせず,与えられたコードを理解し,軽く修正して応用できることを目指す.
データサイエンスでは,データを読み込み,計算し,可視化し,モデルを当てはめるという作業を繰り返す.
Python のコミュニティは非常に活発であり,これらの作業を行うための豊富なライブラリが提供されている.本書で使うのは,数値計算のための NumPy,可視化のための matplotlib,機械学習のための scikit-learn である.このほかにも,表形式のデータを扱う Pandas や,科学技術計算のための SciPy などが広く利用されている.NumPy は次章で扱い,そのほかのライブラリは必要になった章で紹介する.
さらに,Python は初心者にとって学びやすい言語であり,コードが読みやすく,書きやすいという特徴がある.
本書のコードは,以下の手順で実行できる.
練習 1.1 Google Colab で以下のコードを実行し,Hello, World! と表示されることを確認せよ.
print("Hello, World!")Hello, World!
解答 1.1. 下記の内容が表示されれば成功.
Hello, World!
変数とは,データを格納するための名前付きの入れ物である.
整数,浮動小数点数,文字列,ブール値など,様々なデータ型を格納できる.変数は,= 演算子を使って値を代入する.
x = 10 # 整数
y = 3.14 # 浮動小数点数
name = "Alice" # 文字列
is_student = True # ブール値
print(x)
print(y)
print(name)
print(is_student)10
3.14
Alice
True
上のコードの # 整数 のように,# から行末まではコメントとして扱われ,実行されない.コードの意味を書き残しておくために使う.
練習 1.2 新しいセルを作成し,変数 a に 5 を代入し,print() 関数を使って a の値を表示せよ.
解答 1.2.
a = 5
print(a) # 55
数値の計算には,次の算術演算子を使う.
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
+ |
加算 | 5 + 2 |
7 |
- |
減算 | 5 - 2 |
3 |
* |
乗算 | 5 * 2 |
10 |
/ |
除算 | 5 / 2 |
2.5 |
** |
べき乗 | 5 ** 2 |
25 |
計算の順序は数学と同じで,乗算と除算が加算と減算より先に計算される.順序を変えたいときは,丸括弧 () を使う.
print(2 + 3 * 4)
print((2 + 3) * 4)14
20
練習 1.3 2^{10} を計算し,print() 関数を使って結果を表示せよ.
解答 1.3.
print(2 ** 10) # 10241024
リストは,複数の値を順序付けて格納するためのデータ構造である.リストは,角括弧 [] を使って作成し,カンマ , で区切られた要素を含む.
fruits = ["apple", "banana", "cherry"]
print(fruits)
numbers = [1, 2, 3, 4, 5]
print(numbers)['apple', 'banana', 'cherry']
[1, 2, 3, 4, 5]
練習 1.4 リスト colors に “red”, “green”, “blue” の3つの要素を格納し,print() 関数を使って colors の値を表示せよ.
解答 1.4.
colors = ["red", "green", "blue"]
print(colors) # ['red', 'green', 'blue']['red', 'green', 'blue']
関数は,特定の処理を行うコードのまとまりであり,引数を受け取り,結果を返すことができる.Python には多くの組み込み関数があり,例えば print() 関数は引数として与えられた値を表示する.
次のコードは,print() 関数を使って,文字列,整数,浮動小数点数,演算結果,リストを表示する例である.
print("This is a sample text.")
print(1)
print(3.14)
print(1 + 2)
numbers = [1, 2, 3, 4, 5]
print(numbers)This is a sample text.
1
3.14
3
[1, 2, 3, 4, 5]
len() 関数は,リストや文字列の長さを返す.fruits リストは3つの要素を持つため,len(fruits) は3を返す.
fruits = ["apple", "banana", "cherry"]
length = len(fruits)
print(length) # 33
他にも,sum() 関数はリストの要素の合計を計算し,max() 関数はリストの最大値を返す.
例 1.1 sum() 関数を使うと,リスト numbers の要素の合計を計算できる.
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 1515
練習 1.5 max() 関数を使って,リスト numbers の最大値を計算せよ.
解答 1.5.
numbers = [1, 2, 3, 4, 5]
maximum = max(numbers)
print(maximum) # 55
条件によって処理を変えるには,if を使う.次のコードは,変数 x が 0 より大きいかどうかで,表示する内容を変える.
x = 10
if x > 0:
print("正の数")
else:
print("正の数ではない")正の数
if の後ろに条件を書き,行の最後に : を置く.条件が成り立つときは if の下の行が,成り立たないときは else の下の行が実行される.
条件の下の行は,半角スペース4つ分だけ右にずらして書く.これをインデントという.Python では,インデントによって処理のまとまりを表すため,ずれていると正しく動作しない.
条件を書くには,次の比較演算子を使う.
| 演算子 | 意味 |
|---|---|
== |
等しい |
!= |
等しくない |
< |
より小さい |
<= |
以下 |
> |
より大きい |
>= |
以上 |
例 1.2 絶対値 |x| は,x \geq 0 のとき x となり,そうでないとき -x となる.if を使うと,次のように書ける.
x = -3
if x >= 0:
print(x)
else:
print(-x) # 33
練習 1.6 変数 score に 75 を代入し,score が 60 以上なら 合格,そうでなければ 不合格 と表示せよ.
解答 1.6.
score = 75
if score >= 60:
print("合格") # 合格
else:
print("不合格")合格
同じ処理を何度も行うには,for または while を使う.if と同じように,繰り返す処理はインデントして書く.
for は,繰り返す回数が決まっているときに使う.range(n) は,0 から n-1 までの整数を順に取り出す.
for i in range(3):
print(i)0
1
2
range(a, b) と書くと,a から b-1 までの整数を取り出す.
次のコードは,1 から 5 までの整数の和を求める.変数 total に 0 を入れておき,繰り返しのたびに i を足していく.
total = 0
for i in range(1, 6):
total = total + i
print(total) # 1515
練習 1.7 for を使って,1 から 10 までの整数の和を求めよ.
解答 1.7.
total = 0
for i in range(1, 11):
total = total + i
print(total) # 5555
while は,繰り返す回数があらかじめ決まっていないときに使う.条件が成り立つあいだ,処理を繰り返す.
次のコードは,x が 1 より大きいあいだ,x を 2 で割り続ける.
x = 10
while x > 1:
x = x / 2
print(x) # 0.6250.625
条件が成り立たなくなった時点で,繰り返しは終わる.条件がいつまでも成り立つ場合,繰り返しは終わらないため注意すること.
練習 1.8 変数 x に 100 を代入し,while を使って,x が 10 より大きいあいだ x を 2 で割り続け,最後の x の値を表示せよ.
解答 1.8.
x = 100
while x > 10:
x = x / 2
print(x) # 6.256.25
関数は,引数を受け取り,処理を行い,結果を返すコードのまとまりである.Python では,def を使って関数を定義する.
例 1.3 f(x) = 2x + 1 を計算する関数 f は,次のように定義できる.
def f(x):
return 2 * x + 1
print(f(3)) # 77
例 1.4 f(x, y) = x^2 + y^2 を計算する関数 f は,次のように定義できる.
def f(x, y):
return x**2 + y**2
print(f(3, 4)) # 2525
練習 1.9 f(x) = 3x^2 - 4x + 5 を計算する関数 f を定義せよ.
解答 1.9.
def f(x):
return 3 * x**2 - 4 * x + 5
print(f(2)) # 99
Python では,import 文を使って,様々なモジュールを利用できる.以下のようにモジュールをインポートし,モジュール名.関数名() という形式で関数を呼び出す.
import モジュール名
例えば,数学関数を提供する math モジュールをインポートし,平方根を計算する sqrt() 関数を使うことができる.
import math
result = math.sqrt(16)
print(result) # 4.04.0
import は,ノートブックごとに一度実行すればよい.一度インポートしておけば,同じノートブックの中では何度でもそのモジュールを使える.本書では,各節の最初のコードでインポートを行い,それ以降のコードでは省略する.
モジュールを使うと,自分で書くと手間のかかる処理を簡単に済ませられる.例えば 例 1.2 では if を使って絶対値を求めたが,math モジュールを使えば1行で書ける.
練習 1.10 math モジュールの fabs() 関数は,引数の絶対値を返す.-10 の絶対値を計算せよ.
解答 1.10.
import math
result = math.fabs(-10)
print(result) # 10.010.0