● プログラミングを勉強したいけど難しそう。。
● pythonを勉強したいけど、何からすればいいの?
● プログラミングを勉強したけど挫折した経験がある。
皆さんはプログラミングについて、どのようなイメージをお持ちでしょうか。
「難しそう」、「興味はあるけど、そもそも何をしたら良いかわからない」、「専門用語が多すぎて意味不明!」
また、すでに勉強をしたことがある方の中には、「勉強してみたけどよく分からなかった」、「エラーが出て嫌になった!」という方も多いと思います。
今回は、これからプログラミングを始めてみたいと思っている方、また、少し勉強してみたけどエラーばかりで諦めてしまった方に向けて、「python(パイソン)」というプログラミング言語を簡単に体験していただければと思います。
「python」はプログラミング言語の中でも分かりやすいと言われている言語です。
それでは早速やっていきましょう!
普段はHTML・CSSを使ったWeb制作や、pythonを用いて仕事の効率化を行なっています。
HTML・CSSはこのキャンプブログを作る過程で学び、pythonは主に業務の自動化や機械学習分野で役立てています。
pythonの始め方【プログラミング初心者向け】
プログラミング言語のひとつ「python」を使うために必要なものがあります。
それは「パソコン」と「Googleアカウント」です。
パソコンが1台あれば、pythonを使ってプログラミングする事が可能です。
私はwindows、macbookどちらも使用していますが、「pythonを体験してみる」、「通常の業務で活かすプログラムを作る」という事でしたら、どちらでも大差はありません。
また、すごく性能の良いパソコンも必要ありません!
まずは今使っているパソコンを使いましょう。
pythonを覚えるために、パソコンを買い換えるというのはもったいない選択肢です。
それよりだったら、pythonの参考書を買うことをお勧めします。
Googleアカウントについては、次で説明します。
pythonを使えるようにする(インストールは不要です)
pythonをパソコンに入れるのは結構面倒なので、Googleコラボラトリーを使います。
【Googleコラボラトリー:https://colab.research.google.com/?hl=ja】
Googleにログインした状態で上記のサイトに入ると、以下の「Colaboratoryへようこそ」という画面が表示されます。
次に、左上の「Colaboratoryへようこそ」と書かれているすぐ下にある「ファイル」を選択します。
そうすると色々表示されますので、「ノートブックを新規作成」を選択します。
下のような画面になれば成功です。
画面上には、何やら再生ボタンのようなものや、その右隣に空欄がありますよね。
この空欄にプログラミングコードを書いて、再生ボタンを押すとプログラミングが実行されるわけです。
早速pythonを体験してみましょう。
この空欄に「1+1」(※「」は書かない)と書いて、再生ボタンを押すと「2」と表示されます。
次に、プログラミング言語の紹介ページではよく使われるのですが、「Hello, World」と表示してみましょう。
空欄には「print(“Hello, World”)」(※「」は書かない)と書いて、再生ボタンを押してみましょう。
このように、「Hello, World」と表示されていると思います。
プログラミングの世界にようこそ!といった意味ですね!
たった今、コードを書いて頂いた方はプログラミング言語「python」を体験して頂きました。
今書いていただいた「1+1」や「print(“Hello, World”)」は非常に簡単で、使い道のなさそうなコードです。
しかし、プログラミングはこういったコードの繰り返しでもあります。
さて、ここまでpythonをパソコンに入れるのではなく、Googleコラボラトリーを使ってpythonを動かしました。
これには明確な理由があります。
私がpythonを始めたときはGoogleコラボラトリーの存在を知らなかったので、色々調べながらパソコンにインストールを行いました。
実際にpythonを動かすというだけなら大して難しくもないのですが、pythonをより便利に使うための機能を入れたりするのに手こずった経験があります(よく環境構築と言われています)。
実はこのpythonを便利に使えるようにする工程の段階で、プログラミングで挫折する方も多いと聞きます。
プログラミングを体験するまでも辿り着けないということです。
そして上に書いた通り、私自身もそうなりかけたことがあります。
でも、GoogleコラボラトリーはGoogleアカウントさえ持っていればパソコンに何もしなくてもpythonを使うことができます。
パソコンでpythonを使えるようにする環境構築に手間取る時間はもったいないので、まずはGoogleコラボラトリーでpythonを体験してみるというのが大事です!
pythonで何ができるの?(自動化が出来ます)
pythonで出来る事はたくさんあります。
私が主に行なっているのはパソコン作業の自動化ですが、一覧にまとめてみます。
● エクセルや計算作業の自動化
● インターネットブラウザ操作の自動化
● インターネットから自動で情報収集
● 売上予測のAIを作る
● これらの操作を直感的に操作できるソフト作り
などなど
事務員の私がpythonを使っている中で、かなり役立っているのはこんな感じです。
だって、pythonで出来る事を調べた時に、「youtubeやinstagramもpythonで出来ています!」と書かれていても作るのはかなり難しいでしょうし、イメージが湧きませんよね。
もちろん、pythonは非常にたくさんの事ができるプログラミング言語です。
これはpythonで出来ることの、ほんの、ほん〜の一握りです。
もう少し具体的にお話しします。
エクセルや計算作業の自動化
例えば、多くの企業では請求書作成という作業が毎月あります。
pythonで具体的に役立つのは、請求額の自動計算や、ある額の地点を自動で検索するといった操作です。
「そんなのエクセルでも出来るじゃん!」と思われたかもしれません。
確かにエクセルでも、VBAを覚えたり、関数を駆使すれば出来るんだと思います。
でも、pythonで出来るのはエクセル操作だけではありませんので、覚えておけば色々なことが実現できるようになります。
さて、ここでの具体的な操作は自動計算という点です。
エクセルで請求箇所毎の売上シートがあったとして、ひとつ一つ開いて、関数を入れて計算をして、といった操作が主流だと思います。
pythonでは、全てのエクセルファイル(またはCSV)を読み込んで、同じような計算を一瞬で行い、それぞれ別のシートに書き出すといった事が可能です。
また、クラウドのネットワーク上に売上データがある場合、自動操作によって触れなくても売上データをダウンロードしてくるといった事も可能。
普段エクセルでこういった作業をしている方にとっては、革命的な業務効率化を行なってくれるかもしれません。
具体的には、pythonで「openpyxl」や「pandas」といった機能を使います。
インターネットブラウザの自動操作・情報収集
次に紹介するのはインターネットにまつわる操作です。
エクセル操作でも少し触れましたが、インターネットレジを使用しているため、クラウドのネットワーク上に売上データがあるという環境の方もいらっしゃると思います。
この場合、例えば関係箇所毎に一々選択をして、売上データをダウンロードして、といった事を繰り返していませんか?
pythonの「selenium」という機能を使えばインターネットブラウザの自動操作が可能に、「BeautifulSoup」という機能を使えば自動でインターネットに散らばる情報を集めてきてくれます。
(※ただし、自動操作や自動情報収集を禁止しているサイトもあります)
自動でダウンロードしてきた売上データを自動で読み込み、自動で計算処理をすれば何もしなくてもよく、しかもプログラムさえきちんとしていれば人間よりもはるかに高速で正確です。
売上予測のAIを作る?!(scikit-learn)
pythonが最近話題の理由の一つに、AIに特化しているプログラミング言語である事も影響しています。
これはpythonで統計手法によって、売上などの需要予測を行なってくれるという事です。
AIの中身は、「結果」と「原因」の2つのデータに分かれています。
例えば「売上予測」を例にして説明します。
結果は「過去の売上データ」の事です。
原因は「過去の天気などのデータ」と、「未来の想定される天気などのデータ」の2つの事です。
このように、簡単に説明するとAIは「過去の結果データ」、「過去の結果につながる原因データ」、「予測したい未来の想定原因データ」の3つで出来ています。
どういう事かというと、
「1月の気温は10℃だった。1月の売上は100円だった。」
「だから、気温と売上は○○といった計算式で表せる。」
↓
「そして、2月の想定気温は15℃だ。」
「だから、計算式に15℃を当てはめると売上は200円と予想できる。」
こんな感じです。
もちろん、普段からこういった予測はエクセルを使ったり、前年比や直近の傾向を使ったりして、数字的にも、体感的にも大体分かるかもしれません。
pythonを使うメリットは、膨大な量のデータを計算出来ることと、しっかりとした統計計算を行ってくれるので論理的な説明が出来る点にあります。
具体的には、scikit-learn(サイキットラーン)という機能を使います。
直感的に操作できるソフトを作る
pythonをある程度覚えてくると、上記のようなプログラミングをpython上で動かせるようになります。
自動操作で業務の効率化が行えるということは、社内の他の人にも使っていただいた方が良いですよね。
でも、pythonやプログラミングを全く知らない人に「それ自動で出来るから、パソコンを起動したらGoogleを開いて、このプログラムの画面にして、実行ボタンを押して…」と伝えるわけにもいきません。
pythonでは、こういった操作に苦手な方でも直感的に操作しやすいソフト(アプリ)を作る機能も備わっています。
具体的には「PySimpleGUI」という機能を使います。
ソフトを作る人はPySimpleGUIの使い方を覚える必要がありますが、作ってしまえば社内の誰でも直感的にpythonを使えるようにすることが出来ます。
また、windowsのパソコンがある環境では、作ったpythonと同じフォルダに「batファイル」を作ることで、pythonやGoogleを立ち上げなくても、batファイルをダブルクリックするだけでpythonを使う事ができるようになります。
pythonの基礎
ここまで、pythonで出来る事を紹介してきました。
いきなり上記の機能を操作するのは少し難しいので、まずは基礎を押さえておきましょう。
今回は、何かを表示する「print」と「変数」の2つの機能を紹介します。
機能ごとに、コードの例も表示しますので参考にしてください。
なお、pythonではコード各行の主に先頭に「#」をつけると、「これはコードではなくメモですよ」といった意味になります。
書いたコードの意味が何なのかを控えるのに使えます。
また、文字列は「””」または「”」で囲います(例:”パイソン” / ‘パイソン’)
文字や結果を表示する(print関数)
文字や結果を表示するには、printという関数を使います。
書き方は、 print(表示したいもの) になります。
文字の場合は「””」で囲いますので、「 print(“これは文字です”) 」
数字の場合は、「 print(3) 」「 print(1 + 3) 」
#Hello, Worldと表示する print("Hello, World") #計算結果を表示する print(1 + 3)
「ただ文字を表示するだけじゃん!何に使うの?」と思われたかもしれません。
でも、print関数は計算結果の表示にも使えます。
例えば大量のデータが入ったエクセルが2つあったとします。
両方に日別の気温データが入っていたとして、しかしそれぞれ観測会社が違うものとします。
この時、それぞれの気温データをpythonが見比べて、どれくらい差があるかをprint関数で表示できます。
あらかじめ用意したものを引っ張ってくる(変数)
あらかじめデータを準備して、そこからデータを引っ張ってきたいな〜という場合は、変数というものを使います。
変数と聞くと最初は分かりづらいので、箱だったり、机の引き出しと覚えると良いかもしません。
要は文字や数字などのデータを入れておける場所のことです。
そして、この指定は「○○(変数の名前) = 入れるデータ」で指定します。
でも、正直よくわからないですよね。。
例えば「私はpythonです」という文字を表示する場合、先ほどのprint関数だけで行うと以下の通りです。
#私はpythonですと表示する print("私はpythonです")
では、「私はpythonです」という文字を、変数=箱に入れてみます。
短い単語に、長い文字を入れられると覚えれば良いでしょうか。
「a」という箱(変数)に、「私はpythonです」と入れると短いコードで済みます。
コードは以下の通りです。
#aという箱に「私はpythonです」と入れる。文字なので、""で囲う。 a = "私はpythonです" #私はpythonですと表示する #既に箱に入っている文字が""で囲われているので、文字の表示でもここでは箱の名前であるaだけでOK(""は不要) print(a)
はい、どうでしょうか。
「いや、普通にprint(“私はpythonです”)って書いたらいいやん」
と思われたと思います。
この箱(変数)は、すごいんです。
今度は数字の計算をしてみます。
試しに普通に、5 + 5 + 5をやってみましょう。
#5 + 5 + 5の計算をする print(5 + 5 + 5)
こうなりますよね。
では箱(変数)を使ってみます。
#5 + 5 + 5を変数を使って計算する。 a = 5 b = 5 c = 5 print(a + b + c)
こうなります。
これでも、「いやいや、普通にprint(5 + 5 + 5)でいいじゃん」となると思います。
箱(変数)の真価は、文字や数字のデータが多かったり、変更が必要になった時に現れます。
例えば2番目の5を6に変えてくれとなった場合を考えてみます。
#2番目の5を6に変える print(5 + 6 + 5)
数字が少なければこれでも問題ありません。
しかし、変数と使っておけば、変更に対し柔軟に対応できますし、大量のデータに対しての修正にも対応できます。
#5 + 5 + 5を計算したい a = 5 b = 5 c = 5 print(a + b + c) #やっぱり2番目の5を6に変えてくれ #以下のコードでbが6に上書き変更される b = 6 print(a + b + c)
今回は、プログラミングをこれから始める方、pythonに興味がある方を対象に、なるべく手軽にpython自体を試せる内容をご紹介させていただきました。
次回以降は、機能毎により詳しく紹介していきたいと思います。
pythonを使いこなせば、本当に色々な事が実現できます。
しかし、pythonを実行する環境づくりがそもそも難しかったり、エラーが出ても解決策が見つからずして諦めてしまう事も多いです。
今後も、なるべく専門用語を使わず、分かりやすくを目標にpythoで出来る事を紹介していきたいと思います。
紹介して欲しい事等がありましたら、コメント等で教えてください。
【↓全くプログラミングを触ったことがない方向けの本も紹介します】