まずはこれだけ Python基礎からサンプルプログラムまで一気に進める記事
この記事の目次
Pythonの基礎をまとめます。
環境構築が済んだら基礎まとめを読むだけで全体像が掴めるようになっています。
環境構築がまだの方はこちらの記事から環境構築を進めてください。
簡易紹介:こうたろう
1986年生まれ
音大卒業後日本、スウェーデン、ドイツにて音楽活動
その後金田式DC録音のスタジオに弟子入り
プログラミング(C)を株式会社ジオセンスのCEO小林一英氏よりを学ぶ
現在はヒーリングサウンド専門のピアニスト、またスタジオでは音響エンジニア、フォトグラファーなどマルチメディアクリエーターとして活動中
当記事ではプログラマー、音響エンジニアとして知識とスキルをシェアしていきます
関連サイト
最初に知っておくこと
- Pythonは動的型付言語
- インデントのスペースは半角4つ
- 括弧の前後は空白不要
- 演算子の前後は半角スペース1つ
これを覚えるだけでもエラー回数は大幅に減ることになります。
CやJavaなどの静的型付言語はコンパイルが必要なため型の指定が必要ですが、Pythonなどの動的型付言語はプログラムの実行中に自動で型の判定を行なってくれるため指定が不要で記述量も少なくなると言った特徴があります。
例えばCでhello worldを表示させる場合は
#include<stdio.h>
int main() {
printf("hello, World\n");
return 0;
}
このようになるのに対してPython(3系)の場合は
print("hello World")
これで済みます。
文字を表示させるためには対象となる文字をダブルクォーテーションで括ります。
コンパイルが必要な言語をインタプリタ言語と言います。
インタプリタ言語に興味のある方は是非こちらの記事も参考にしてください。
コメントについて
細かくコードの説明をしたい場合やメモを取りたい時などにプログラム自体に影響を及ぼさずに書き込むことができる機能です。
Pythonでは
#これはコメントです。
#を使います。
複数行にまたぐ場合であってもすべての行に#をつけてください。
当サイトではその言語のコメントアウトを使用しています。
変数の定義
変数の定義も型の指定が不要ですので簡単です。
動作確認のためにターミナルでPython(対話型)を動かしてチェックしましょう。
ターミナルで
python3
とすると
>>>
が表示されてPythonが待機してくれています。
x = 3
print(x)
で3が表示されます。
print(x + 3)
で6が表示されます。
また、Pythonでは値の変化しない定数は定義できません。
【予備知識】デカルトのルール
プログラムの解説本や動画などでもアルファベットの後半の文字を使用するのを見かけます。
これは世界共通ですが、後半の文字でで変数を表し、前半の文字で定数を表すと言う表記慣例はフランスの哲学者兼数学者のルネ・デカルトが使い始めたと言われています。
また、自然数はnaturalから[n]と表すことが世界的な慣例となっています。
もちろんプログラム上のルールではないため自由に定義してください。
型を知る
- int型 = 整数
- float型 = 小数点を扱う数字
- string型 (文字列型) = 文字を取り扱う型
- bool型 = 「真 = true」と「偽 = false」という2値をとるデータ型
動的型付言語のため自動で判別してくれますが、こういった型があることを覚えておきましょう。
型はtypeで確認できます。
再びターミナルの対話モードPythonにてtypeで型を表示させてみます。
#これはint型
n_1 = 123456
#これはfloat型
n_2 = 123.123456
#これはstring型
o = "oro"
を定義し、それぞれtypeで型の確認をします。
print(type(n_1))
print(type(n_2))
print(type(o))
チェック完了です。
boolは「真 = true」と「偽 = false」の型になりますのでtrue, falseそれぞれ用意してチェックしてみてましょう。
#これはfalseの式
a = 10
b = 100
test = (a > b)
print(test)
#これはtrueの式
a = 10
b = 100
test = (a < b)
print(test)
#データ型を確認
print(type(test))
n_1 = 1 / 4
ちなみにこちらは割り算(次の項目で学習)となりfloat型になります。
print(type(n_1))
でチェック。
四則演算
+, -, *, /, %
左から順番に[足し算, 引き算, 掛け算, 割り算, 余り]を表します。
対話型で変数を定義して計算してみましょう。
せっかくなので暗算では難しい数字にしましょう。
x = 432533
y = 85
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x % y)
関係演算子
<, >, <=, >=
左から[大なり, 小なり, 以上, 以下]です。
大なりイコール, 小なりイコールは間違えやすいので注意しましょう。
等価演算子
=を二つ並べてください。
否定するときは != と記述します。
#trueの例です。
x = 100
y = 50
z = 100
print(x != y)
print(x == z)
#falseの例です。
x = 100
y = 50
z = 100
print(x == y)
print(x != z)
論理演算子
複数の条件を判別する場合に使います。
and
#〜かつという意味。
#両方が真かどうか。
and
True and False
False and True
False and False
はいずれもFalseが返ってきます。
True and TrueのみTrueが返ってきます。
#trueの例です。
x = 100
y = 50
print(x >= 30 and x <= 1000)
print(y >= 40 and y <= 100)
#falseの例です。
x = 100
y = 50
print(x >= 100 and x <= 99)
print(y >= 60 and y <= 100)
or
#〜またはという意味。
#どちらか一方でも真かどうか。
or
True or True
True or False
False or True
の場合いずれもTrueが返ってきます。
False or FalseのみFalseが返ってきます。
代入演算子 (複合代入演算子)
定義した変数に代入してから計算することも可能です。
x = 100
y = 50
z = 200
#ここで代入。
#自由にコーディネート可能。
x = x + y + z
print(x)
実行結果はこのようになります。
x += y はx = x + y と同じ意味になります。
x -= y はx = x – y と同じ意味になります。
先ほどの式に当てはめると
x = 100
y = 50
z = 200
#ここで代入。
#自由にコーディネート可能。
x += y + z
print(x)
でさっきと同じ350が返ってきますね。
習うより慣れるためのサンプルプログラム
さて、ここから辞書やif文for文など学ぶと思いますが、筆者の経験上、教科書的に進めても効率が悪いと感じることが多かったので、まずはサンプルプログラムを動かしてみてください。
筆者のプログラミングの師匠が最初にくれたアドバイスが、「教科書を進めるよりも最初に作りたいものを決めるといい」と言われました。
ググれる時代ならではの学習法で、目的が最初にあって、その目的を攻略するためのスキルを身につける。
これが最短の学習法だと思っています。
これから始める方も是非最初に何を作るのか?を決めてから取り組むようにしてみてはいかがでしょうか。
さて、筆者の愛読書の一つである、「システム検証DIYプロジェクト ――トレンドフォローシステムを毎日修正・更新する」の著者ジョージ・プルート氏の考え方とも類似しています。
主に金融やトレードでPythonを使う方は参考になるかと思います。
→コードの中身は変えています。
print("こんにちは。訪問ありがとう。")
print("あなたの名前は?")
name = input()
print("教えてくれてありがとう ", name)
age = int(input("あなたは何歳?"))
if age < 20:
print("お金の勉強は早ければ早いほどいい。")
if age < 30 and age >= 20:
print("成人式は行きました?")
if age < 40 and age >= 30:
print("仕事が楽しくなってきましたか?")
if age < 50 and age >= 40:
print("四十惑わず。")
if age < 60 and age >= 50:
print("休肝日を作ってね。")
if age < 70 and age >= 60:
print("人生100年時代、これから第二の人生?")
if age < 80 and age >= 70:
print("いろんなところでシルバー割引使えるかも?")
if age < 90 and age >= 80:
print("目指せ100歳超え。")
これをコピペして実行してみてください。
おっと、実行の前に環境構築をやってしまいましょう。
サンプルコードを解説
print関数
print関数はPythonが用意した関数です。
関数とは箱のようなものという解説が多いですが、まさにそういった理解でOK。
上記はPythonが用意した関数ですが、もちろん関数は自作することもできます。
これは別の記事で解説します。
表示させるための関数であり、文字を表示させるためには()内にダブルクォーテーションで表示させたい文字を括ります。
冒頭2行で文字を表示させています。
input関数
文字を入力するために待機する関数です。
3行目で名前を入力してもらうために待機します。
入力してくれたら4行目で教えてくれてありがとう+「入力してもらった名前」を表示します。
その後input関数で年齢を入力してもらいます。
if文
入力された数値によって表示される文字を決めてくれます。
ifはそのまま「もし〜なら」という文で、プログラムでは頻繁に使います。
if age < 20:
print("お金の勉強は早ければ早いほどいい。")
では、もし入力されたageが20以下なら、お金の勉強は早ければ早いほどいい。と表示させるという文になります。
以下すべて同様。
if文とは、条件分岐ですと最初に解説があるよりも、とりあえずプログラムがそこにあって解説があった方がわかりやすいのではないでしょうか?
サンプルにはないけど知っておきたいルール
他にelifやelseを使い分けでif文は強化していくことができます。
他にプログラムでよく登場するのがfor文。
for文
for文で定義する変数をカウンタ変数と言います。
カウンタ変数は英語の[index]から[i]が使われることが慣例です。
for i in range(10):
print(i)
これで指定範囲をループさせます。
ループ処理を途中で止めるためにはbreak文を使用します。
break文
break文はループを終了させる際に使用します。
さきほどのループを5回目で終了させてみましょう。
for i in range(10):
if i == 5:
break
print(i)
continue文
continue文はスキップする際に使用します。
for i in range(10):
if i == 6:
continue
print(i)
for文+else
for文が終了した後に一度だけ実行したい処理をelseで記述することができます。
例えば、for文が終わったら「完了しました。」と表示させてみましょう。
for i in range(10):
print(i)
else:
print("完了しました。")
while文
while文では条件式がTrueの間処理を繰り返します。
n = 0
while n < 5:
print(n)
n += 1
5はfalseなので実行されませんでした。
n = 0
while n <= 5:
print(n)
n += 1
こうすると5まで表示されます。
例えばリストを作成し、リスト内の数値を足していくこともできます。
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
sum = 0
for i in num:
sum += i
print(sum)
覚えることは基本的にこれと、あと少しルールを覚えるだけです。
例えばこういった入門書を一冊買えばOKです!
Pythonは誰でも簡単にプログラミングができるように作られたプログラミング言語なので、あまり難しく考えないでその恩恵を素直に受け取りましょう!