プログラムとは何だろうか。まず言葉の定義を確認しておこう。
③の意味のプログラムは、パソコンやスマホ、タブレットなどを動かしているアプリそのものである。また、デジカメやドローンといったIT機器や、テレビ、冷蔵庫、エアコンなどの家電製品、自動車や飛行機といった大型機械、ワイヤレスヘッドホンやICカードの中にもプログラムが入っている。現代人の生活とプログラムは切っても切れない関係にある。
このシリーズでは、Python というプログラミング言語を使って③の意味のプログラムを作ることを学ぶ。
第1章では、Pythonを開発・実行する環境を用意する。
第2章では、計算や繰り返し、キーボード入力と画面出力、ユーザー定義関数をともなう簡単なプログラム作りを学ぶ。
第3章以降で、Pythonの文法を深堀りしていく。
第1章では、Pythonを開発・実行する環境を用意する。
第2章では、計算や繰り返し、キーボード入力と画面出力、ユーザー定義関数をともなう簡単なプログラム作りを学ぶ。
第3章以降で、Pythonの文法を深堀りしていく。
目次
対象者
このシリーズは、趣味としてプログラムを作ってみたい方、これからプログラムに関わる仕事に就く方を想定して書いている。また、費用をかけず学べるようにに、オープンソースや当サイトからファイルをダウンロードするだけで学習できるようにしてある。
プログラミングは「習うより慣れろ」という言葉がよく当てはまる。慣れるまでは、1分でも多くの時間をプログラミング練習に費やしてほしい。本シリーズでは、多くのサンプル・プログラムをダウンロードできるようにしてある。本編の記事を読んだら、サンプル・プログラムを自分なりに改造して、どのような動きに変わるかを試してみてほしい。
プログラミングは「習うより慣れろ」という言葉がよく当てはまる。慣れるまでは、1分でも多くの時間をプログラミング練習に費やしてほしい。本シリーズでは、多くのサンプル・プログラムをダウンロードできるようにしてある。本編の記事を読んだら、サンプル・プログラムを自分なりに改造して、どのような動きに変わるかを試してみてほしい。
Pythonプログラムの開発とテストにはパソコンがあった方がいい。Windows、Linux、Macintoshのいずれでもよいが、ここでは、Windowsを使った開発方法を中心に紹介する。
スマホだけで開発するのは難しいが、個人で自由に利用できるパソコンが無い方を含め、インターネット上で無料で Pythonプログラムを実行できる paiza.io のようなサービスもある。スキマ時間にこういったサービスを利用しながら、オフの日には自宅でじっくりプログラミング学習に取り組んではいかがだろうか。
世の中には数多くのプログラミング言語がある。このシリーズでは、そのうちの Pythonという1つの言語を取り上げるが、学んだ内容は他の言語にも応用できるように配慮したつもりである。
スマホだけで開発するのは難しいが、個人で自由に利用できるパソコンが無い方を含め、インターネット上で無料で Pythonプログラムを実行できる paiza.io のようなサービスもある。スキマ時間にこういったサービスを利用しながら、オフの日には自宅でじっくりプログラミング学習に取り組んではいかがだろうか。
世の中には数多くのプログラミング言語がある。このシリーズでは、そのうちの Pythonという1つの言語を取り上げるが、学んだ内容は他の言語にも応用できるように配慮したつもりである。
サンプル・プログラムの文字エンコードについて
このシリーズでは、各節で、サンプル・プログラムを無償でダウンロードできるようにしてある。プログラム・ファイルの文字エンコードは、Pythonバージョン3 で標準となっている UTF-8 で、改行コードは LF にしてある。
プログラムの利用、ご質問・ご意見は
このシリーズでダウンロードできるプログラムは、自己学習の範囲内で利用する分には自由に変更してもらって構わない。ただし、無償ということで、利用した結果、何らかの得失が発生しても当サイトは責任は負わないことを、あらかじめご了承願いたい。
また、学校や企業内などで2次利用したいときは、「リンク・二次利用について」をご覧いただきたい。
内容に関するご質問、こんなテーマを取り上げて欲しいなどのご意見があれば、Twitterアカウントをお持ちの方は パパぱふぅ@𝙥𝙖𝙝𝙤𝙤.𝙤𝙧𝙜 へ、お持ちでない方は各ページの右下にあるリンク「こちらへお願いします」をクリックしてほしい。
これらコミュニケーションは他の利用者の参考にもなるので、とくに事情がないかぎり、ネット上でオープンにやり取りさせていただきたい。
また、学校や企業内などで2次利用したいときは、「リンク・二次利用について」をご覧いただきたい。
内容に関するご質問、こんなテーマを取り上げて欲しいなどのご意見があれば、Twitterアカウントをお持ちの方は パパぱふぅ@𝙥𝙖𝙝𝙤𝙤.𝙤𝙧𝙜 へ、お持ちでない方は各ページの右下にあるリンク「こちらへお願いします」をクリックしてほしい。
これらコミュニケーションは他の利用者の参考にもなるので、とくに事情がないかぎり、ネット上でオープンにやり取りさせていただきたい。
参考書を読みながら学習を進めたいという方にお勧めなのが本書だ。「解説→例題(サンプル・プログラム)→理解度チェック」の繰り返しで、初心者から経験者まで Pythonの理解度を深めることができる。
著者は、NEC勤務からライターに転身し、C#, Java, PHP, Rubyといった多くのプログラミング言語の「独習」シリーズを執筆している@山田祥寛@やまだ よしひろruby@さん。
著者は、NEC勤務からライターに転身し、C#, Java, PHP, Rubyといった多くのプログラミング言語の「独習」シリーズを執筆している@山田祥寛@やまだ よしひろruby@さん。
Pythonプログラムに慣れてきたら、こちらを読んでみよう。
「正しく動くならどんなコードも同じである」という考えから卒業し、良いコードが書けるようになる方法を、具体的なコードを交えながら簡明に説明している。
かわいい表紙とは裏腹に、内容は本格的――。
「正しく動くならどんなコードも同じである」という考えから卒業し、良いコードが書けるようになる方法を、具体的なコードを交えながら簡明に説明している。
かわいい表紙とは裏腹に、内容は本格的――。
次回予告
次回は、Windows上で Pythonプログラムを動かすための実行環境と、プログラム開発するための開発環境のインストール方法を解説する。
コラム:システム開発とプログラム開発
再び広辞苑を調べてみよう。
システム【system】
複数の要素が有機的に関係しあい、全体としてまとまった機能を発揮している要素の集合体。組織。系統。仕組み。
『広辞苑』第七版より
今日のシステムは、様々なIT機器がネットワークを介して有機的に結合しているが、これを図示したものが上の絵である。
ここで注意してほしいのは、それぞれのIT機器は、その役割・機能に適したプログラミング言語でソフトウェアが構築されていることだ。たとえば、アプリケーションサーバ(クラウドサービスと呼ばれるものを含む)は Python、PHP、Java などで、データベースは SQLで、人工知能は Python や R言語で、ドローンなどのIoT機器は C++言語などでソフトウェアが書かれている。
ここで学ぶ Pythonは、アプリケーションサーバ(Webアプリ)、人工知能・機械学習、データ処理と行った分野に強いプログラミング言語だが、IoT機器のようなリアルタイム処理が求められる分野は苦手だ。Pythonを覚えれば、すべてのシステム開発ができるわけではないことは覚えておいてほしい。実際、「1.4 ブラウザを使ったGUI」ではユーザーインターフェース(アプリケーション層)を動かすために、大々的に JavaScriptを利用している。
Pythonに慣れてきたら、「JavaScriptによるプログラミング入門」を読んでいただければ幸いである。
とはいえ、すべての言語を一気呵成に学ぶというのも現実的ではない。どれか1つの言語を修めてから他の言語の習得に進むのが常道である。
また、1人の人間の能力には限界があるから、システム全体を独力で開発できるフルスタックエンジニアになるのは非常にハードルが高い。仕事では、それぞれの言語が得意なエンジニアが集まってチーム開発することが多い。
ここで注意してほしいのは、それぞれのIT機器は、その役割・機能に適したプログラミング言語でソフトウェアが構築されていることだ。たとえば、アプリケーションサーバ(クラウドサービスと呼ばれるものを含む)は Python、PHP、Java などで、データベースは SQLで、人工知能は Python や R言語で、ドローンなどのIoT機器は C++言語などでソフトウェアが書かれている。
ここで学ぶ Pythonは、アプリケーションサーバ(Webアプリ)、人工知能・機械学習、データ処理と行った分野に強いプログラミング言語だが、IoT機器のようなリアルタイム処理が求められる分野は苦手だ。Pythonを覚えれば、すべてのシステム開発ができるわけではないことは覚えておいてほしい。実際、「1.4 ブラウザを使ったGUI」ではユーザーインターフェース(アプリケーション層)を動かすために、大々的に JavaScriptを利用している。
Pythonに慣れてきたら、「JavaScriptによるプログラミング入門」を読んでいただければ幸いである。
とはいえ、すべての言語を一気呵成に学ぶというのも現実的ではない。どれか1つの言語を修めてから他の言語の習得に進むのが常道である。
また、1人の人間の能力には限界があるから、システム全体を独力で開発できるフルスタックエンジニアになるのは非常にハードルが高い。仕事では、それぞれの言語が得意なエンジニアが集まってチーム開発することが多い。
コラム:Pythonとモンティ・パイソン
Python は、英語でニシキヘビを意味する。そのロゴは、2匹の蛇が絡まり合っているイメージだ。
ただし、この蛇は後付け――1991年(平成3年)にPython を開発したアメリカのプログラマー、グイド・ヴァンロッサムは、イギリスの人気コメディグループ〈モンティ・パイソン〉が初めて制作したテレビ番組『空飛ぶモンティ・パイソン』のファンで、そこからパイソンという名前を付けたという。
ただし、この蛇は後付け――1991年(平成3年)にPython を開発したアメリカのプログラマー、グイド・ヴァンロッサムは、イギリスの人気コメディグループ〈モンティ・パイソン〉が初めて制作したテレビ番組『空飛ぶモンティ・パイソン』のファンで、そこからパイソンという名前を付けたという。
私もモンティ・パイソンは大好きで――『空飛ぶモンティ・パイソン』第2シリーズ第12話のラストで流された「スパム」(日本では1976年(昭和51年)9月初放映)は、スパムばかりが入っているメニューしかないレストランで繰り広げられるドタバタ・コメディが秀逸で、現在における迷惑プログラムの呼称「スパム」の語源となった。
2024年(令和6年)6月現在、『空飛ぶモンティ・パイソン』はNETFLIXで配信している。プログラミング学習の息抜きに、ぜひご覧あれ。民族やジェンダーを全く意識させない古き良きブリティッシュ魂を感じることができるだろう。
2024年(令和6年)6月現在、『空飛ぶモンティ・パイソン』はNETFLIXで配信している。プログラミング学習の息抜きに、ぜひご覧あれ。民族やジェンダーを全く意識させない古き良きブリティッシュ魂を感じることができるだろう。
(この項おわり)