Pythonを初めてみました!

By | Date : 2018/07/22 | 47 views

カテゴリ : Python プログラミング タグ: ,

こんにちはー、ニアです。

最近、業務で使用しているサーバープログラムのデプロイを自動化しようとfabric(Python製のデプロイツール)を利用してみようと企んでいます。

今回はPythonを使って、色々プログラミングしてみました。

1. 使用環境

  • Python 3.7.0

fabricの公式はPython2.xのみの対応ですが、これがforkされてPython3.xで利用できるfabric3もあったので、私はPython 3.xの方をインストールしました。

Macであれば、Homebrewから最近リリースされたばかりのPython 3.7をインストールできます。

 

2. 早速プログラミング

2.1. コンソール出力とコンソール入力

コンソールへの出力(標準出力)はprint関数、コンソールからの入力(標準入力)はinput関数でできます。

input関数は標準入力から1行読み込み、それを文字列として返します。従って、整数や浮動小数点数として扱いたい時は、int関数やfloat関数などで変換しておきます。

int型の範囲は、なんとメモリが許す限り無限にとれてしまいます。128ビットはもちろんのこと、暗号化処理でよく使用する256ビットでもRSA等で使う2048ビットや4096ビットでも何でもござれです。

float型の範囲は、C#のdouble型(倍精度浮動小数点型)と同じでした。

 

また文字列リテラルの前にfを付けると、{}の中に変数や値を入れて書式指定して文字列に変換することができます。これはPyhton 3.6で追加された機能です。
Pythonでは書式指定文字列への変換の仕方はいくつかあるのですが、C# 6.0の文字列補完に慣れている私にとってこの機能はとても便利だなと思いました。

 

2.2. 算術計算

四則演算は+*/ の演算子で行います。余剰は%を使用して求めます。

またPythonでは、**でべき乗、//で商を求めることができます。特にべき乗ではCやC#の場合、数学系ライブラリを呼び出して行う必要があるので、Pythonではコードがより簡素になりますね(なお、べき乗を求めるpow関数も用意されています)。

Python2とPython3では整数同士の除算で小数点以下が出る時の挙動が異なり、Python2ではC#のように小数点以下は切り捨てとなるのに対し、Python3ではfloat型に変換されて小数点以下も保持されます

 

2.3. 配列

Pythonには、要素のみを格納する配列と、キーと値のペアで格納する連想配列があります。・・・てか連想配列の方はそのまんまJSONですね。

 

2.4. 条件分岐

Pythonの特徴として、インデントの深さで条件分岐などの制御をするルールがあります。このルールによってインデントが綺麗にまとまるので、読みやすくなるメリットがあります。Pyhton以外では、F#(Light syntaxモード)やCoffee Scriptが該当します。

F#と聞いて!

まあ、F#ではカレンダープログラムでミョウガさんが書いたF#コードのように、文同士をコロンで繋げて1行に収めてしまうことができますけどね。

なお、C#のswitch文やF#のmatch文に相当する文はないので、if〜elif〜elseで代用します。

 

Pythonで繰り返しの処理をする時は、for文もしくはwhile文を使用します。for文の方はF#のfor-in文やC#でいうforeach文にあたり、inの後に配列やコレクションを指定します。range( 5 )は [0, 1, 2, 3, 4] の範囲を持つRangeオブジェクトを返します。

 

なお、do-while文に相当する文はないので、while文とif文とbreak文などで代用します。

 

2.5. 関数

defキーワードで関数を宣言し、呼び出し元から受け取るパラメーターや関数本体を定義します。

 

2.6. クラス

classキーワードでクラスを宣言し、メンバーとなる変数や関数などを定義します。今回はシンプルに複素数のクラスを作ってみます。

 

実はというとPythonでの複素数は標準で定義されており、complexクラスがあります。四則演算用の演算子も定義されているので、自然な記述で計算できますね(もちろん、int型やdouble型との計算もOK)。

 

2.7. ライブラリを利用

Pythonには便利なライブラリがたくさんあります。今回はNumPyというライブラリを使って行列計算してみます。

 

3. おわりに

今まで使った言語(C#やC++、PHPなど)と比べて、Pythonはソースコードをシンプルに書けるのが魅力的だなと感じました。今までサッとプログラムを書く時はC#やC++(コンソールアプリ)を使っていたのですが、一々main関数を記述するのが煩わしく、それ専用のプロジェクトを作って保存していました。Pythonならテキストエディタを開いて、いきなり処理が書けるから素早く始められます。

ちなみにテキストエディタは、Visual Studio Codeを使っています。

あと驚いたのは、int型の範囲ですね。始めた当初は、他のプログラミング言語と同じように64ビット分まで格納できるのかなと思っていたのですが、まさかそれよりもずっと巨大な数値が格納できるとは思いませんでした。しかも追加インストールなしで!

 

さて、学んだ知識でfabricによるデプロイ作業の効率化にチャレンジしてみよう。

 

ところで皆さんは、Pyhtonのバージョンは、2と3のどちらがお好きですか?

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ニア(Nia)

紅茶とコーヒーが好きな湘南生まれのプログラマー/ITエンジニアです。主にC#/C++/PHPを使ってプログラミングをしています。趣味は写真撮影と音ゲーです。時々イラストを描いています。プログラミングを勉強している方々と仲良くなりたいです! 興味を持っている分野:UWP/Xamarin/Android Wear/WPF/Windows/Visual Studio/WordPress/KUSANAGI/nginx

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください