Translate

2020年1月20日

超初心者のPythonプログラミング(その1)

はじめてのPython ipynb - Colaboratory

1分でPythonの学習を始める! | 象と散歩 で Googleが提供するクラウドでのPython実行環境、Google Colaboratory を紹介しました。PCでもモバイル端末でもブラウザ(Chromeを推奨)が使える環境とGoogleアカウントさえあれば簡単にPythonの勉強が始められます。

データサイエンティストとして活躍するためには、データクレンジングやデータ加工をするためにPythonでプログラムが書けると便利ですし、そのままPythonでデータ分析もできます。

また、論理的思考を鍛えるためにプログラミングを勉強しようという方にも、Python は文法が簡単なので最適なプログラム言語だと思います。。そして、前述したように Google Colaboratory を使えば、ソフトウェアのインストールなども必要ないので気軽に始められます。

何れにしても、バリバリのプログラマーを目指すわけではないので、エキスパートになる必要はまったくなく、最低必要減の知識を身に付ければ十分です。先ずは、Pythonってどんなプログラム言語なのかを学んでいきましょう。

このブログの中では、 プログラミングの基礎として、下記について何回かに分けて説明をしていこうと思います。あとは実践の中で知識を深めていってください。今回は、1~2の変数と四則演算までの説明となります。

  1. 変数とは?
  2. 演算子(四則演算)
  3. データを格納する
    1. 配列
    2. 二次元配列
    3. 集合型
    4. 辞書型
  4. 条件分岐(IF分と比較演算子,論理演算子)
  5. 繰り返し文(forループ, whileループ)
  6. 関数

Goolge Cloabで新規ノートを作成する

Python3の新しいノートブック - Colaboratory

メニューから “ファイル” → “Python 3の新しいノートブック” を選択します。

Python3の新しいノートブック - Colaboratory

これで、新しいノートブックが開いてPythonのプラグラムを書く準備ができました。

Python3 ノートブック - Colaboratory

ひとつのコードセルに書いたプログラムは同時に実行されます。左上にある『+コード』をクリックすると、現在のセルの下にコードが追加されます。またセル中央の上部でマウスオーバーすると同じようにコードを追加のアイコンが現れます(下図参照)。こちらは、現在のセルの上にコードセルが追加されます。

またセル中央の下部でマウスオーバーすると、現在のセルの下にコードを追加するアイコンが出現します。

プログラムを書くcodeセル - Colaboratory

これで、Pythonプログラミングの勉強の準備は完了です。


0. Pythonの文法

Pyhonはとてもシンプルなプログラミング言語です。

  • Pythonのプログラムは、原則1行に1命令
    1行に複数の命令を記載する場合は、;(セミコロン)で繋げる
  • # で始まる行はコメント
    プログラムと同一行の後ろに # でコメントを記載することも可能
  • if, for, while で実行するプログラムはインデント(字下げ)する

と、いうのがプログラムを実行する上での最低限のルールですが、PEP (Python Enhancement Proposal:Python拡張提案)にて美しい(わかりやすい)プログラムの書き方が提案されているので、少しPythonのプログラムに慣れたら pep8-ja 1.0 ドキュメント を参照してみましょう。


1. 変数とは

変数はプログラミングをする上では必ず使うものなのでしっかり覚えましょう。

なぜプログラムで変数を使うかといえば、例えば、1+1 の答えは、2でしかありませんが、a+b とすると、a と b に様々な数値を代入することで、式を変えずに答えを変えることができます。この a, b が変数です。変数には、数値以外にも文字も代入することができます。


変数名

aとかbといった小文字ひと文字でなくても、Result, Result_1, Result_2 など英大文字、アンダースコア、数字が使えますが、数字は先頭には利用できません。

しかし、Pythonが使っているキーワード(予約語)は、変数としては使えません。例えばNoneに1を代入しようとすると、"SyntaxError: can't assign to keyword" とエラーとなります。

予約語を変数として使おうとするとエラーに

また print などを変数として割り当ててしまうと、命令としてのprintが使えなくなり面倒なことになります。

Google Colaboratory のノートブックでプログラムを書くと、「あなたが書きたいプログラムはこう?」と推奨してくれる機能があります。例えば先頭一文字pを入力すると、pass, pow, pprint, print, property が候補としてあがるので、これらの文字列を変数として使うのはやめましょう。

サジェスト機能で変数に使えない文字列を確認

もし間違って割り当ててしまったときには、

del 変数名

として、変数の定義を削除します。


変数に数値や文字列を代入する

変数に数値や文字を代入するには"="を使います。プログラムでは=記号は、計算結果を表す記号ではなく代入のための記号です。

  • =(イコール)は代入を表す
  • 文字列は、'(シングルクォーテーション)若しくは、"(ダブルクォーテーション)で囲む

また、文字列+文字列は、文字列の結合を意味します。

下記のプログラムを実行してみましょう。a + b の結果を c に代入して、結果を表示するプログラムです。a と b に代入している数値を変更して色々と試してみましょう。

print() は、()の中を表示する命令です。

a = 1        # 変数 a に 1 を代入
b = 2.5      # 変数 b に 2.5 を代入
c = a + b    # 変数 c に a+b の計算結果を代入
print(c)     # 変数 C の中身を表示

変数に数値を代入して計算する - colaboratory

文字列を変数に代入する

続いて変数に文字列を入れてみます。

a に Hello, b には World! を代入して、a と b の文字列を結合した結果を c に代入します。文字列の足し算は、結合を意味します。前述したように文字列は ‘(シングルクォーテーション)か “(ダブルクォーテーション)で囲みます。

下記のプログラムを実行してみましょう。

a = 'Hello,'    # a に Hello,を代入(シングルクォーテーションで囲む)
b = 'World!'    # b に World!を代入(シングルクォーテーションで囲む)

# 文字列 + 文字列は、文字列を結合するという意味になります。
c = a + b       # c に a の文字列と b の文字列を結合した結果を代入
print(c)        # c を表示

変数に文字列を代入して結合する - colaboratory

因みに文字列の中で ‘(シングルクォーテーション)を使いたい場合は、 ”(ダブルクォーテーション)で全体を囲み、逆に”(ダブルクォーテーション)を使いたい場合は、‘(シングルクォーテーション)で全体を囲みます。

下記のプログラムで確認できます。

# ' を文字列に含みたい場合は " で全体を囲む
# " を文字列に含みたい場合は ' で全体を囲む

print('Hello, "Python" World!')
print("Hello, 'Python' World!")

Pythonで文字としてシングルクォーテーション、ダブルクォーテーションを使う

変数の有効範囲

変数に代入した値は、Google Colabotaryでは、

  • ノートブックを閉じる
  • 別なノートブックでプログラムを書く
  • 暫く放置してセッションが切れる

まで、ずっと有効です。

厳密には、グローバル変数とローカル変数というのがありますが、いまの時点では、前に代入した値が残っていると思ってください。


2.演算子(四則演算子)

次は、四則演算子についてです。加算(足し算)については、変数の例で示しましたが、減算(引き算)、乗算(掛け算)、除算(割り算)、べき乗については下記の記号を使います。

四則演算 記号
加算 +
減算 -
乗算*
除算 /
商を求める //
余を求める %
べき乗 **

割り算では、商と余を求めることができます。べき乗では、二乗であれば**2、10乗であれば**10のように書きます。

では実際にプログラムで確認してみましょう。下記のプログラムでは、print文の中で計算を実行しています。

a = 5
b = 3

# aとbを足す(加算)
print(a + b)

# aからbを引く(減算)
print(a - b)

# aとbをかける(乗算)
print(a * b)

# aをbで割る(除算)
print(a / b)

# aをbで割った商を求める
print(a // b)

# aをbで割った余りを求める
print(a % b)

# aのb乗
print(a ** b)

Pythonで四則演算 - Colaboratory

最後に

これで、変数を説明して変数を使った計算までができるようになったと思います。

最後に読みやすいプログラムについて追記しておきます。今回のサンプルプログラムは、下記のように読みやすくするためにところどころ半角スペースを入れています。

a = 1      # 変数 a に 1 を代入
b = 2.5    # 変数 b に 2.5 を代入
c = a + b  # 変数 c に a+b の計算結果を代入
print(c)   # 変数 c の中身を表示

しかし、下記のようにすべての半角スペースを削除したとしても実行結果は同じです。

a=1#変数aに1を代入
b=2.5#変数bに2.5を代入
c=a+b#変数cにa+bの計算結果を代入
print(c)#変数cの中身を表示

どちらも3.5という答えを求められますが、どちらのプログラムが見やすいですか?

img alt="可読性に優れたプログラム" height="378" src="https://lh4.googleusercontent.com/QW6mUmW1HSuCcYU9d_yc50NiL9CHNwKzfvewjWU1QlPSyhBiYQefLC2OJ1KafSNeH35Z72uIDRslVOZfTTb9JYH-dIcUcx_bTF1-zbDqVRweKprA-I9q9ryEgPesaq17wNnnamiLkI6l_mgWz0VNMw=w640-h378" title="可読性に優れたプログラム" width="640" />

これが見やすいプログラムを考えるということです。

0 件のコメント:

コメントを投稿

アクセス上位(過去7日間)