PythonプログラミングTips集

 

蛇使いのための備忘録

登場から早くも20年ほどになるPython(パイソン)は、今やIT・AI産業において必要不可欠なプログラミング言語となっている。このページではPythonによるコーディングの基本から、ちょっとした応用までの内容について備忘録程度に書きのこしておく。内容は適宜追加していく予定だが、他人に優しい解説が掲載されているとは限らないので予めご留意願いたい。

なお、当サイトでは個別の質問対応には応じられませんので、適宜、他サイトの専用掲示板などをご活用下さい。

(管理人:blocks)


・目次

そもそもsyntax分からん系のTopic

§ if文の書き方(初級編)
§ if文の書き方(中級編)
§ while文の書き方
§ for文の書き方&range関数の用法

 

出力系のTopic

§ printで桁合わせする
§ 整数をゼロ埋めで出力する
§ 特殊文字( # とか % とか ” とか)を出力する

 

演算系のTopic

§ 四則計算
§ 剰余(余り)の計算
§ べき乗の計算
§ 平方根とか三乗根とかの計算
§ 実数↔整数の変換
§ 複素数型変数の扱い方

 

文字列系のTopic

§ 文字列同士を比較する方法
§ 文字列の部分一致など

 

リスト(配列)系のTopic

§ リストの要素の入れ替え
§ リストを丸ごと入れ替える
§ リストへの要素の追加
§ リストの要素を数える

 


・そもそも「Python」って?

「Python」は1991年に公開された汎用のプログラミング言語。コードが極力シンプルになるよう(半ば強制的に)設計されており、一目で分かりやい&少ない行数でプログラミングできるというのが大きな特徴である。

他の言語などに比べて変数の「型」や配列に必要な「メモリ」などの管理が簡単であるため、プログラミング初心者ならまずPythonを、といった具合で近年、世界的に見ても爆発的に普及しているプログラミング言語である。巷で流行りのAI(人工知能)、ビックデータ解析、マシンラーニング(機械学習)と相性が良く、エンジニアなら書けない人はいないほど広く使われている。

Pythonのコーディングでは、C言語のように “{…}” で括らずに構文をインデントで制御するため、スクリプトの見た目が非常にキレイである(誰が書いてもほぼ統一された見た目になる)。そのため、他のプログラミング言語使用者がPythonのスクリプトを見ると良くも悪くも「お行儀の良い」プログラムだなぁと感じられることだろう。これがPython最大の特長だと思う。

C言語やシェルスクリプトなどであればワンライナーで書けるものも、Pythonではこのインデントの制約のために1行でまとめてワシャッと書くことは許されない。そういう人には向いていないが、慣れればかなり使いやすい言語であることは間違いない。

●   ●   ●

2019年11月現在、最近は3.8へのバージョンアップが行われた。Webプログラミング界隈ではまだまだPython2系が現役だが、これからPython使いを目指すという方はPython3系を勉強することをオススメする。


・Pythonのコーディング規約「PEP 8」

PEP 8」(外部リンク) というPythonのコーディングスタイルガイドラインが知られており、Pythonによるコーディングにおけるコモンセンスとなっている。

代表的なものを以下に掲載しておく。

・インデントは空白4つ。タブは使わない。

・すべての行の長さを最大79文字までとする。必要に応じて行を折り返す。

・関数やクラス、比較的大きいコードブロックの区切りには適宜空行を使う。

・コメントはできるだけコードと同じ行に書く。該当するコードを書き換えた場合はコメントを更新せよ。

・docstringを使う。

・演算子の前後とコンマの後には空白を入れ、括弧類のすぐ内側には空白を入れないこと。(例えば、「a = f(1, 2) + g(3, 4)」のようにする)

・クラスや関数には一貫性のある名前を付ける。

などなど。開発チームによっては独自のルールでコーディングすることがあるかもしれないが、基本的には第三者にも読みやすいコーディングを心掛ける、というスタンスで良いと思われる。pycodestyle (外部リンク) というパッケージを使えば PEP 8 のルールに則っているかチェックできる(pipでダウンロード可能)。

…らしいが、管理人はズボラなので特に使用したことはない。


・Pythonは計算が苦手?

C言語に比べてオリジナルのPythonは演算が遅いということを聞いたことがある人は多いと思います。実際、処理能力には結構差があり、計算量によってはC言語のプログラムに比べて数倍~数十倍もの時間が掛かってしまうこともあります。これはPythonが型を明示せずに変数を宣言可能であるという仕様が理由の一つです。

これを解決すべく、Pythonには「numpy」と呼ばれる数値計算を効率的に実行するための拡張モジュールが用意されています。

開発環境で使えるように

でインストールすると、

で使えるようになります。詳しく解説しているサイトは幾らでもあると思いますので、そちらを参照して下さい・・・。

 


・pipを使おう

pipのインストールはこちら(外部リンク)。

基本的には 

pip install [ライブラリ名]

でインストール可能。PCのローカルに置く場合はコマンドプロンプトを開いてpipすればOK

以下に管理人が便利だと思うライブラリ・モジュールを列挙します。

  • numpy:数値計算を効率的に行うための拡張モジュール
  • matplotlib:グラフ描画ライブラリ(インタラクティブなグラフを生成可能)
  • request:インターネット接続のためのHTTPライブラリ(ファイルのダウンロード・ウェブページ(HTTP)の取得など)
    urllibでもhttpの取得などは可能
  • beautifulsoup4:HTMLやXMLからデータを抽出する
  • lxml
  • pypdf2:PDF関係をいじる(結合・分割・挿入・ロックなど)
  • pyinstaller:●●●.pyをexeファイル(実行可能な形式)に変換する
    これと同時にpycryptodomeもインストールした。
    環境変数Pathに

    とか

    のように “Scripts” まで通しておくこと。環境変数Pathのいじり方は当サイトに解説記事があるので、ご覧下さい。


開発環境の構築

孤高のミニマリストであれば「メモ帳」さえ使えればプログラミングはできる、と言い張るかもしれないが、テキストエディタ選びは実際かなり重要ですよね。個人的には「Atom」というエディタが取っ付きやすいと思う。

 

必要な分だけパッケージをインストールして自分好みにカスタマイズ可能。補完機能やハイライト機能が充実しており、日本語化パッケージもあるので初心者にもお勧めできる。ありがたいことにpythonの開発環境構築を指南するウェブサイトや書籍は世の中にゴロゴロ転がっているので、そちらを参考にして頂ければ良い。「Atom」を導入する方法を解説しているサイトも沢山あるので、OSに応じて対応して下さい。