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

最終更新日

この記事はAmazonをはじめとした各種広告を含みます。
この記事で学べること

Pythonの基礎をまとめます。
環境構築が済んだら基礎まとめを読むだけで全体像が掴めるようになっています。
環境構築がまだの方はこちらの記事から環境構築を進めてください。

簡易紹介:こうたろう

1986年生まれ
音大卒業後日本、スウェーデン、ドイツにて音楽活動
その後金田式DC録音のスタジオに弟子入り
プログラミング(C)を株式会社ジオセンスのCEO小林一英氏よりを学ぶ
現在はヒーリングサウンド専門のピアニスト、またスタジオでは音響エンジニア、フォトグラファーなどマルチメディアクリエーターとして活動中
当記事ではプログラマー、音響エンジニアとして知識とスキルをシェアしていきます

最初に知っておくこと

      
  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")

これで済みます。

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

コンパイルが必要な言語をインタプリタ言語と言います。

インタプリタ言語に興味のある方は是非こちらの記事も参考にしてください。

コメントについて

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

Pythonでは

#これはコメントです。

#を使います。

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

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

Hulu

変数の定義

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

動作確認のためにターミナルで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文など学ぶと思いますが、筆者の経験上、教科書的に進めても効率が悪いと感じることが多かったので、まずはサンプルプログラムを動かしてみてください。

icon image

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

さて、筆者の愛読書の一つである、「システム検証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まで表示されます。

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

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サンプルコード】録音後の音声データを文字起こしする方法
SpeechRecognitionライブラリを使用します。これは、Pythonのpipコマンドを使って簡単に行えます。…
“Pythonで学ぶ:ポッドキャストテクニック〜完成動画からMP3音声抽出”
完成動画からMP3の高音質版である320kbpsで抽出するPythonサンプルコードを紹介します。…
エポキシ基盤 vs ベークライト基盤:あなたのプロジェクトに最適な選択は?
エポキシ基盤とベークライト基盤を選択する際には、プロジェクトの要件、特に耐久性、耐熱性、コストの観点から適切な基盤を選ぶことが重要です。…
【フォルマント分析】言語パスバンド分析による語学学習効率化
スペイン語が日本人にとって相性がいい根拠を提示しましょう!…
【エンジニア向け保存版】DSD完全ガイド〜DSDからPCMへの変換サンプルコードまで
録音エンジニアとしては、自然界のロケなどもう2度といけないような場所の音響は是非DSDで残したいですし、一期一会の音楽もDSDで残したいと思うものです。…
Raspberry Piを使ってオーディオレコーダーを自作する方法
保存場所や、WIFIを使った機能の追加など、市販品ではなかなか難しいレコーダーを自作して、現場の業務を安全かつ円滑に進められるように工夫していってください。…
【Python音声からテキスト抽出】英語の字幕を自動生成する方法
日本語字幕はすでに対応可能なソフトやツールがたくさん出ていますので、自動で翻訳して出力するまでをやってみましょう。…
【音声機械学習】音源だけで性別、年齢、感情を識別するアプリの開発ガイド決定版
性別、年齢、感情を識別するアプリを開発する例を用いて機械学習の感覚を掴んでいただこうと思います。…
【Music21保存版】音楽家必須のPythonプログラミング〜楽譜の管理と楽曲分析の最強ツール
music21は、古典音楽から現代音楽に至るまで、幅広い楽曲の分析と探究を可能にします。…

関連するおすすめ書籍