Pythonを初めて使う方のために入門書を作成しました。
はじめに
ネットワークエンジニア、またはサーバーエンジニアでこれから仮想環境の構築をする上で、プログラミングも必要になっていきます。
このPythonは、ネットワークエンジニアに求めらているプログラミング言語です。
近年、サーバー構築ができるインフラエンジニアの需要も増えている中、ネットワークエンジニアのプログラミングでの開発スキルを求められてくることが多くなっています。
ネットワークの知識は当たり前の知識となり、それだけで仕事することは難しくなってきています。
ネットワークの上位プロトコル(BGPやOSPF)なんてキャリア系の企業に就職しないと余り触ることもないです。
さらに仮想化ネットワークが広まっていくにつれ、仮想化ネットワーク上でプログラミングを行い、ネットワークシステムを構築するスキルも求められています。
ネットワークは今や自動で構築できることが当たり前のようになっていきます。
そのためネットワークエンジニアでもプログラミングができるエンジニアが重宝されてきているわけです。
ということで、これからネットワークエンジニアとして仕事をしていくにはプログラミングも必要となります。
そしてそのプラグラミング言語として覚えておきたい言語が「Python」です。
Pythonはインフラ周辺で使用されている言語であり、仮想化が普及してきた近年においては、ネットワークエンジニアに必要とされるプログラミング言語となっています。
もちろん企業もこのPythonを求めている企業が増えています。
これからネットワークエンジニア、サーバーエンジニアとしてもPythonは身に付けておきたいプログラミング言語となります。
Pythonとは
Pythonは数あるプログラミングの一つで、読みやすく、書きやすいプログラミング言語として設計されています。
海外では、プログラミングを初めて学ぶときには、この「Python」が推薦されるほど人気の言語となっています。
また、シンプルな言語ですが、多種多様な開発用とに使える便利な言語でもあります。
例えば、組み込み開発、Webアプリケーション、コンピューター上で動作するデスクトップアプリケーション、科学技術計算、機械学習など様々な用途でPythonは使用されています。
最近で言うと、人工知能の分野でこのPythonが使われているケースが多いことでも有名で人気が出てきています。
言語としても文法がシンプルであり、教育言語としても利用されることが多い言語でもあります。
このように私のようなネットワークエンジニア出身の人間には、これから必要となるスキルでもあるので、これから学んでいくことでスキルが上がり、仕事の分野も広がっていきます。
ぜひ、この入門書を通して、ネットワークの開発をしてみてはいかがでしょうか。
「テキストエディタ」インストール
Pythonでプログラムをする上で必須となるのが「テキストエディタ」です。
特にPythonのプログラムを書くことに特化したテキストエディタとしておすすめするのが「VSCode」と「Atom」です。
VSCodeはプログラムを作成するのによく使用されるテキストエディタで拡張機能もあり、利用しているユーザー割合が多いです。
Atomは「GitHub」が公開している無料のテキストエディタで、簡単にダウンロードをインストールをすることが可能です。
Atomのダウンロードとインストール方法を、Windows、Macそれぞれの方法を参考にしてください。
テキストエディタ「VSCode」インストール
Windows
MacOS
テキストエディタ「Atom」インストール(Windows)
Windows
日本語化
テキストエディタ「Atom」インストール(Mac)
MacOS
日本語化
「Python」インストール
Pythonは公式サイトより配布されているインストーラーを使用してインストールを実施します。
https://www.python.org/downloads/
Pythonのサイトで、Windows用のダウンロードページにが表示されるので「Download Python」をクリックし、ダウンロードが完了するとインストーラーを立ち上げてインストールするだけです。
Windows、MacOSではそれぞれ微妙にインストールのやり方に違いがあるので、以下のページを参考にしましょう。
「Python」インストール(Windows)
WindowsのPythonインストールの手順は以下となります。
Python公式ページにアクセスするとWindows版のダウンロードページへアクセスします。
「Python」インストール(Mac)
MacOSのPythonインストール手順は以下のページを参考にしてください。
こちらもPython公式ページへアクセスするとMacOS版のダウンロードページへアクセスします。
「Python」インストール(Linux系)
Linux系(ここではCentOS7)のPythonインストール手順は以下のページとなります。
CentOSでのインストールはyumリポジトリを事前にインストが必要となるので参考にしてください。
「Python」起動
Pythonのインストールが完了したら、いよいよPythonを起動します。
起動順序は、Windows、MacOSでそれぞれ違うので、しっかりと頭に入れておきましょう。
また、Windowsは「Python」コマンドで起動しますが、MacOSはバージョン3を起動する際は「Python3」コマンドで起動します。
Macで「Python」コマンドを入力すると、バージョン2で起動するので注意しましょう。
Python起動(Windows)
Windowsで「Python」を起動する場合はコマンドプロンプトを起動時実行します。
以下が起動手順です。
- デスクトップ左下にある「Windowsマーク」をクリックし、「コマンドプロンプト」を起動します。
もしくは、キーボードで「ctrl+R」を押し、検索のポップアップが表示されるので「cmd」と入力し、Enterを押します。 - 以下のように「コマンドプロンプト」が立ち上がるので、「python」もしくは「py.exe」と入力し、Enterを押すとPythonが起動します。
C:>python Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> >>>
わたしもあったケースですが、インストール後上記で「Python」と叩いても起動しない場合があります。
この時、以下のようにインストール先のリンクまで移動し、「Python」と入力しても起動します。
C:¥> cd ¥Users¥"ユーザー名"¥AppData¥Local¥Programs¥Python C:¥Users¥"ユーザー名"¥AppData¥Local¥Programs¥Python> python >>> >>>
Python起動(Mac)
上記でPythonのインストールが完了したら実際にMacで起動をします。
起動は以下の手順で「ターミナル」を立ち上げます。
- Finderを起動して「アプリケーション」をクリック
- 「ユーティリティ」をクリック
- 「ターミナル」をダブルクリック
「ターミナル」が起動すると以下のような画面が表示されます。
コマンド実行
Pythonを起動したらまずは、簡単なプログラムを実行してみましょう。
Pythonで対話モードで簡単なプログラムを叩いてみます。
通常の計算式で答えを算出
>>> >>> 1 + 1 2 >>> >>>
「a」が10という数値
「b」が20という数値に置き換えて、答えを出力
>>> >>> >>> a = 10 >>> b = 20 >>> print(a + b) 30 >>>
変数・定数
プログラムの世界では1つの値に対し、名前を付けてその名前を書くだけで、値を使えるようになる仕組みとして「変数」が使われます。
以下のように「ringo」と言う変数を使うことにより、数値を変更する際に何箇所も変更せず、変数「ringo」の値だけを変更するだけですみます。
#りんご1つの値段 ringo = 100 #りんご1つの値段を表示 print(ringo) #りんご3つを買った時の消費税10%を追加した値段 print((ringo * 3) * 1.1)
出よく結果(hensu.py)
$ python3 hensu.py 100 330.0
構文(数値・文字列・型)
ここからは、基礎的なプログラムを書きながらPythonのプログラムについて紹介していきます。
コンピューターには得意なこと、不得意なことがあります。
コンピューターの得意なことは大量の情報を記憶し、処理させたりすることができます。
「プログラム」はこのようなコンピュータが得意なことをさせるための命令の集まりとなります。
ただし、コンピューターには不得意なこともあります。
それは人間のように自分からは、何かを作るということができません。人間のようにアイデアを自ら作り出すことができませんん。
プログラムを作るときは、まずは人間とコンピューターの得意・不得意を意識し、コンピューターにやらせたいことが一体何なのかを考えることが大事です。
数値計算
通常プログラムで計算するには「式」が必要となります。
式は、学校でも習う足し算や引き算、など数と演算子の組み合わせとなります。
以下の例でもわかるように学校で習う数学とほぼ変わりません。
1 + 2
→1(数値) +(演算子) 2(数値)1 + 2 * 3
→1(数値) +(演算子) 2(数値) *(演算子) 3(数値)
実際に、PCでPythonを動かして、演算子を使って計算式を入力します。
「1 + 2 + 3」と入力し、「Enter」を押すと「6」という結果が表示されます。
$ Python3 >>> 1 + 2 + 3 6
以下は、掛け算が優先で計算された出力結果です。
$ Python3 >>> 2 + 3 * 5 17
カッコを使って計算することで、計算する優先順位が変わり、出力結果が変わります。
$ Python3 >>> (2 + 3) * 5 25
データの型
データには「型」があります。
整数など小数点のない数値は「int型」と呼ばれています。
Pythonではこのほかにも以下のような方があります。
- 小数点を含む実数「float型」
- 文字列を表す「str型」
- 真偽値を表す「bool型」
いかにそれぞれの「型」の違いを表にしたので、参考にしてください。
【Python】いろんな型の種類 | ||
---|---|---|
型 | 表示例 | 意味 |
int型(整数型) | 1 100 −50 | 小数点なしの整数 |
float型(浮動小数点方) | 1.5 −0.6 3.1415 |
小数点を含む数値 |
str型 | ‘林檎’ ’apple’ “150” |
文字列 「’」か「”」で囲む |
bool型(真偽値型) | True False | 正しいor正しくない |
以下では「input_str_int.py」と言うファイルを作成し、input()関数を利用してキーボード入力した文字列を「int型」=整数へ変換し計算させます。
test_str = input('数字を入力: ') test_int = int(test_str) number = (test_int + 50) * 2 print(number)
実行結果
$ python3 input_str_int.py 数字を入力: 50 200 $
リスト・タプル
Pythonでは複数のデータをまとめる方式があります。
以下ではそれぞれの方法をまとめています。
リスト
Pythonでは、数値や文字列など複数あるデータをまとめて格納することができます。
これを「リスト型(list)」と言います。
書き方は、以下のように複数データを角カッコ([ ])で囲み、カンマ(,)で区切るだけです。
また、リストも、数値や文字列と同じように変数へ代入することができます。
month_list = ['1月', '2月', '3月', '4月', '5月', '6月'] month_name = month_list[4] print('選んだ月は', month_name, 'です。') 選んだ月は 5月 です。
リストを操作してデーターの追加・削除をする方法
Pythonでは、すでに作成されたリストに対して、後からデータを追加したり、削除したりする機能があります。
この機能は「メソッド」と言われています。
以下ではそれぞれのメソッドを使ったプログラムを紹介します。
append()メソッド
month_list = ['1月', '2月', '3月', '4月', '5月', '6月'] month_list.append('7月') print(month_list)
出力結果
$ python3 month-list.py ['1月', '2月', '3月', '4月', '5月', '6月', '7月']
remove()メソッド
month_list = ['1月', '2月', '3月', '4月', '5月', '6月'] month_list.remove('3月') print(month_list)
出力結果
$ python3 month-list.py ['1月', '2月', '4月', '5月', '6月']
タプル
「タプル」は不変なデータをリスト化する際に使用します。
不変なデータとは、プログラム実行中にリストのデータの値が変わることがないデータと言う意味となります。
Pythonでは、不変なデータを扱うために、「タプル」が存在します。
「タプル」と「リスト」の違い
上記でも簡単に説明しましたが、リストとの大きな違いは以下となります。
- リストは作成した後で、値の追加や削除が可能
- タプルはプログラム実行中に変更することができない
- タプルを変更するには、プログラムないのタプルを定義している部分を書き換えるしかない
- リストは角カッコ[]、タプルは円カッコ()で囲む
タプルの書き方
month_tuple = ('1月', '2月', '3月', '4月', '5月', '6月') month_name = month_tuple[4] print(month_name) 5月
辞書
辞書とは、一般的に言うと、国語辞典や英和辞典などの言葉や物事の意味がたくさん描かれた書物となります。
Pythonでは同じように「キー」と「データ」を紐づけるための「辞書型(dict型)」と言うデータ型があります。
辞書の定義例は以下となります。
test_dict = { '001' : 'dictionary1', '002' : 'dictionary2', '003' : 'dictionary3', } id = test_dict['001'] print('辞書番号は{}です。'.format(id))
実行結果
$ python3 test_dict00.py 辞書番号はdictionary1です。
for文
Pythonのプログラミングの中で、同じことを繰り返す処理があります。
以下ではfor文を使った繰り返し処理となります。
number_list = [100, 200, 300] for number in number_list: print('数値は', number, 'です。') print('繰り返し終了')
実行結果
$ python3 for_test_2.py 数値は 100 です。 数値は 200 です。 数値は 300 です。 繰り返し終了 $
if文
for文と同じくプログラムを作成するに当たり、条件によって処理を変えていく際に使用するのが「条件分岐」です。
if文を使った条件分岐の処理
Pythonでは条件分岐をする場合「if文」を利用します。
この「if文」の使い方ですが、ifの後ろに半角スペースを一つ空け条件となる式を書きます。
インデントされている行が分岐後の処理となります。
以下のように、左から、「ifキーワード」、「式」を下記、最後に「:」コロンでif文の構文を作成します。
if test_point >= 90: 実行したい処理
また、複数の条件で分岐させたい時は「elif」、「else」を使用します。
それ俺の利用用途は以下となります。
- elif :条件を付け加える時に使用
- else :「if」や「elif」でつけた条件のどれにも当てはまらない時の処理
if test_point >= 90: 実行したい処理① elif test_point >= 75: 実行したい処理② else: 上記の条件どれにも当てはまらないときの処理
また、if文の処理は、上から順番に処理されます。
どれか一つの条件に当て嵌まった時点でそのブロック内の処理が実行され、どれにも当てはまらない場合、elseの処理をします。
関数
関数はある特定の処理をひとまとめにしたものとなります。
print()関数
print()関数で数値や文字を表現することができます。
Pythonプログラム上で、文字を表示する場合は、シングルクォーテーション「’」、またはダブルクォーテーション「”」で囲みます。
数値と文字は以下のように区別して記述します。
数値
>>> print(1 + 2) 3 >>>
文字列
>>> print('1 + 2') 1 + 2 >>> print("1 + 2") 1 + 2 >>>
print()関数でメッセージ付きで出力する
print()関数をメッセージを追加する際は以下のように、「’」で文字列を囲うことで出力結果に表示されます。
>>> test_str = input('数字を入力: ') >>> test_int = int(test_str) >>> number = (test_int + 50) * 2 >>> print('合計の答えは', number, 'です。') 合計の答えは 360 です。 >>>
プログラムの注釈(コメント)を入れる方法
ちなみにプログラムを書く上で、他者がプログラムを読む人のために、コメントを入力することができます。
Pythonでは「#」を文頭に書くことによって、そこで書かれた内容は全てコメントとして「プログラムは無視」されます。
プログラムの内容で動作がわかりにくい箇所には注釈としてコメントを記述すると便利です。
※以下ではテキストエディタで作成した内容となります。
#文字を入力 test_str = input('数字を入力: ') #文字を値に変更する test_int = int(test_str) #変数に50を足したあと、2をかける number = (test_int + 50) * 2 #上記計算の答えを出力 print('合計の答えは', number, 'です。') 合計の答えは 360 です。
出力にメッセージを追記する手順は以上となります。
format()メソッドで文字列の表示をきれいに生成する
print()関数で複数の文字列を表示使用しようとする際、文字列の間に半角スペースが入ります。
そこで、半角スペースなしで文字列を連結する「format()メソッド」を使うと表示がきれいになります。
format()メソッドは文字列で作られた雛形(テンプレート)に、任意の値を差し込んで文字列を生成します。
name = 'げんひろき' age = '25' text_template = '名前は{}です。年齢は{}です。' text = text_template.format(name, age) print(text) 名前はげんひろきです。年齢は25です。
format()メソッドを使用することによってprint()関数の出力結果でスペースの区切りがなくなり、文字列がきれいに表示されます。
range()関数
0から指定した数値の一つ手前までを返すプログラム
for number in range(10): print(number)
「1」の開始から「100」の一つ手前までを返すプログラム
for number in range(1, 100): print(number)
enumerate()関数
インデックス番号の要素を同時に取得した繰り返しのプログラム
for number, color in enumerate(['Red', 'Blue', 'Green']): print('No.{} is {}'.format(number, color))
関数とメソッドの違い
Pythonにおける関数とメソッドの違いですが、主に以下となります。
- 関数は引数を受け取り、処理結果を戻り値として返す
- メソッドは値に対して処理を行う
それぞれの詳細は以下となります。
クラス
クラスは効率よくプログラムを作成していくための仕組みであり、「データ」と「処理」をまとめる仕組みとなっています。
クラスを利用した簡単なプログラムは以下のようになります。
- クラスを定義
- インスタンスを作成
- データ属性・メソッドを利用
※ class00.pyというファイルを作成
class Person: def getname(self): return self.name def getage(self): return self.age pr = Person() pr.name = '小林' pr.age = 18 name = pr.getname() age = pr.getage() print(name,'さんは', age, '歳です。')
実行結果
$ python class00.py 小林 さんは 18 歳です。
パッケージとモジュール
プログラミングをする上で、コマンドが増えて行数も増えていくと、1ファイル自体が非常に長くなり、メンテナンスをする際も困難になってしまいます。
そのような時に、Pythonでは機能ごとにファイルを分割する仕組みがあります。
Pythonでは、1つのファイルに書かれているプログラムを「モジュール」と言います。
このモジュールを「import(インポート)」という機能を使うと他のモジュールの関数を読み込んで実行ができます。
これにより、複数のファイルを分割してプログラムを実行することができます。
importを利用したモジュールの実行
別ファイルとして「module01.py」を作成します。
def add(a, b): return a + b def sub(a, b): return a - b
import文を使用してファイルを分割したプログラム「import-test.py」を作成します。
import module01 sum = module01.add(10, 5) dif = module01.sub(20, 15) print(sum, dif)
上記プログラム実行時の表示は以下となります。
$ python3 import-test.py 15 5 $
ファイル
プログラミングでは大量のデータを扱う場合、別ファイルにデータを読み書きすることなどが求められます。
ファイルを開いたり、データを読み書きすることができたり、ファイル内のデータを利用したプログラミングを実行することも可能です。
ファイルを読み込む処理
プログラムにおいて、ファイル内のデータを読み込むには、ファイルを開く動作をプログラムから実施します。
Pythonではopen()関数でファイルを開きます。
※ test.txt
Kobayashi, 90, 100, 95 Tanaka, 87, 96, 76 Sato, 69, 97, 86
※ open.py
read_file = open('test.txt') data = read_file.read() read_file.close() print(data)
※実行結果
$ python3 open00.py Kobayashi, 90, 100, 95 Tanaka, 87, 96, 76 Sato, 69, 97, 86
ファイルに書き込む処理
ファイルを書き込みモードで開く場合は、「open()関数」で2番目の引数にモードを指定します。
今回はファイルに書き込むので、「w」(Writeの頭文字)を指定するとファイルを書き込みモードで開きます。
file = open('test.txt', 'w') file.write('test Hello!') file.close()
※ 実行結果
>python test.py >type test.txt test Hello! >
Webページ作成
PythonでWebページを作成するのであれば、Python製のWebフレームワークが必要になります。
Webフレームワークは数多くありますが、Webページを初めて作る方におすすめは軽量のフレームワーク「Bottle」です。
Bottleのインストールは以下の手順で実施します。
※以下コマンドはMacOSの「ターミナル」で実施
$ python3 -m venv env $ source env/bin/activate (env) Desktop¥$ $ pip install bottle
Bottleのインストール手順は以下のページからそれぞれのOSで確認しましょう。
Pythonを頑張って習得しましょう!
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。