まずはこれだけ Python基礎からサンプルプログラムまで一気に進める記事

この記事について

Pythonの基礎をまとめます。
環境構築が済んだら基礎まとめを読むだけで全体像が掴めるようになっています。
代替テキスト

Pythonの環境構築がまだの方はこちらの記事を参考にしてください。

M1 Mac以降の Python 環境構築 [完全保存版]

最初に知っておくこと

      
  1. Pythonは動的型付言語
  2.   
  3. インデントのスペースは半角4つ
  4.   
  5. 括弧の前後は空白不要
  6.   
  7. 演算子の前後は半角スペース1つ

これだけ覚えるだけでエラー回数は大幅に減ることになります。

CやJavaなどの静的型付言語はコンパイルが必要なため型の指定が必要ですが、Pythonなどの動的型付言語はプログラムの実行中に自動で型の判定を行なってくれるため指定が不要で記述量も少なくなると言った特徴があります。

例えばCでhello worldを表示させる場合は

#include<stdio.h>
int main() {
  printf("hello, World\n");
  return 0;
}

このようになるのに対してPython(3系)の場合は

print("hello World")

これで済みます。

文字を表示させるためには対象となる文字をダブルクォーテーションで括ります。
代替テキスト

コンパイルが必要な言語をインタプリタ言語と言います。
インタプリタ言語に興味のある方は是非こちらの記事も参考にしてください。

Rust とは? 特徴や将来性

【環境構築】Rust M1 Mac

コメントについて

細かくコードの説明をしたい場合やメモを取りたい時などにプログラム自体に影響を及ぼさずに書き込むことができる機能です。

Pythonでは

#これはコメントです。

#を使います。

複数行にまたぐ場合であってもすべての行に#をつけてください。

代替テキスト
こうたろう

当サイトではその言語のコメントアウトを使用しています。

変数の定義

変数の定義も型の指定が不要ですので簡単です。

動作確認のためにターミナルでPython(対話型)を動かしてチェックしましょう。

ターミナルで

python3 

とすると

>>>

が表示されてPythonが待機してくれています。

x = 3
print(x)

で3が表示されます。

print(x + 3)

で6が表示されます。

また、Pythonでは値の変化しない定数は定義できません。

【予備知識】デカルトのルール

プログラムの解説本や動画などでもアルファベットの後半の文字を使用するのを見かけます。

これは世界共通ですが、後半の文字でで変数を表し、前半の文字で定数を表すと言う表記慣例はフランスの哲学者兼数学者のルネ・デカルトが使い始めたと言われています。

ちなみによく使用される慣例として変数が時間の場合はtimeのイニシャルをとって[t]、速度の時は、velocityの頭文字をとって[v]と表したりします。
また、自然数は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が返ってきますね。

冒頭でお伝えしたとおりxをダブルクォーテーションで括ってしまうと文字としてのxが表示されますので注意。

習うより慣れるためのサンプルプログラム

さて、ここから辞書やif文for文など学ぶと思いますが、筆者の経験上、教科書的に進めても効率が悪いと感じることが多かったので、まずはサンプルプログラムを動かしてみてください。

代替テキスト
こうたろう

筆者のプログラミングの師匠が最初にくれたアドバイスが、「教科書を進めるよりも最初に作りたいものを決めるといい」と言われました。
ググれる時代ならではの学習法で、目的が最初にあって、その目的を攻略するためのスキルを身につける。
これが最短の学習法だと思っています。
これから始める方も是非最初に何を作るのか?を決めてから取り組むようにしてみてはいかがでしょうか。

さて、筆者の愛読書の一つである、「システム検証DIYプロジェクト ――トレンドフォローシステムを毎日修正・更新する」の著者ジョージ・プルート氏の考え方とも類似しています。

ポイントもちろん目的にもよりますが、ジョージ・プルート氏の構築するシステムトレードのPythonはここに出てくるプログラムの要素だけで十分であると言っています。
主に金融やトレードで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歳超え。")

これをコピペして実行してみてください。

おっと、実行の前に環境構築をやってしまいましょう。

M1 Mac以降の Python 環境構築 [完全保存版]

サンプルコードを解説

print関数

print関数はPythonが用意した関数です。

関数とは箱のようなものという解説が多いですが、まさにそういった理解でOK。

Python公式の組み込み関数リスト

上記は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まで表示されます。

例えばリストを作成し、リスト内の数値を足していくこともできます。

Python 基礎 リストとdict(辞書)について解説

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を日常のお供として使いたい方は基本的な関数は用意されていますし、ライブラリやパッケージも基本的にインストールして呼び出すだけなので、あまり深く考えないことが重要です。
Pythonは誰でも簡単にプログラミングができるように作られたプログラミング言語なので、あまり難しく考えないでその恩恵を素直に受け取りましょう!

関連するおすすめ書籍

代替テキスト
こうたろう

これから始める方はこちら!

代替テキスト
こうたろう

こちらのシリーズは非常にわかりやすく書かれています!

代替テキスト
こうたろう

オライリーのPythonガイド!

Kotaro
Kotaro
服部 洸太郎
音大を卒業後ピアニストとして活動。
自身のピアノトリオで活動後北欧スウェーデンにてシンガーアーティストLindha Kallerdahlと声帯とピアノによる即興哲学を研究。
その後ドイツへ渡りケルンにてAchim Tangと共に作品制作。
帰国後、金田式電流伝送DC録音の名手:五島昭彦氏のスタジオ「タイムマシンレコード」にアシスタントとして弟子入りし、録音エンジニアとしての活動開始。
独立後、音楽レーベル「芸術工房Pinocoa(現在はKotaro Studioに統合)」を立ち上げ、タンゴやクラシックなどのアコースティック音楽作品を多数プロデュース。
その後、秋山庄太郎氏後継の写真スタジオ「村上アーカイブス」でサウンドデザイナー兼音響担当として映像制作チームに参加。
村上宏治氏の元で本格的に写真、映像技術を学ぶ。
祖父母の在宅介護をきっかけにプログラムの世界に興味を持ち、介護で使えるプログラムをM5Stackを使って自作。
株式会社 ジオセンスの代表取締役社長:小林一英氏よりプログラムを学ぶ。
現在はKotaro Studioにてアルゼンチンタンゴをはじめとした民族音楽に関する文化の研究、ピアノ音響、さらに432hz周波数を使った癒しのサウンドを研究中。
スタジオでは「誰かのためにただここに在る」をコンセプトに、誰がいつ訪れても安心感が得られる場所、サイトを模索中。