eljefeblog 

Any sufficiently advanced technology is indistinguishable from magic

programming python-basic-lectures python-startline

【基本を学ぶ:超初学者向け】Pythonプログラミング入門

Pythonプログラミング入門



本記事では

悩むペン銀

Python初学者で、そもそもプログラミングって全くした事ないけど
どんなものか気になる。

Pythonの基本的な構文など基礎知識を学んでみたい。

結局Pythonって何ができるの?



本記事はこういった疑問・思いに答えていきます。



本記事の内容

  • Pythonを学ぶ理由とそのメリットが分かる
  • Pythonの基本概念がわかる
  • Pythonのインストール方法がわかる



  • **これから読み進めていく人で、初めてプログラミングに取り組もうとしており、これまでまったくプログラミング言語を学んだ経験がない方は本記事の内容は少し難しく感じるかもしれません。まずはこちらの記事でターミナルに関する基礎知識を付けてから学び始めると良いです。



















    #1 Pythonって何?


    「Python」という名称はイギリスのコメディーグループMonty Pythonから名付けられており, 単に和訳すると「ニシキヘビ」を意味します。


    Pythonはインタプリタ型言語であり、プログラムしたコードをコンピュータが理解できる機械語に翻訳することなく実行することができる特徴を備えたプログラミング言語です。


    加えてユーザーがインタラクティブに操作できる*オブジェクト指向の言語であり、プロジェクトの大小を問わず様々な領域で利用されています。


    皆さんの身の回りで使用されているアプリケーションの例をあげるならFaceBookが開発するInstagramYouTube, Dropbox, Pinterestなどが挙げられます。


    現在ではGoogleFacebookといった企業はPythonを様々なプロジェクトにおける開発言語として利用しており、ビックデータやAI, 自動運転そして仮想通貨(Blockchain)といったプロジェクトでは頻繁にこのPythonを用いて開発が進められています。


    Pythonがよく利用されるいくつかのタスクは以下の様な事例が挙げられます。

  • ゲームなどを含むデスクトップにおけるグラフィカルアプリケーションの開発
  • 数学的、科学的なデータの解析
  • ウェブやインターネット開発における利用
  • サイバーセキュリティーの現場

  • この他にも例えばロボットを制御したり



    物体を認識したり



    文章をAIに自動生成させたりできるようになります。




    近年ではPythonは多岐にわたる分野においてポピュラーな言語として親しまれおり
    その構文はとてもシンプルかつ美しく
    初めてプログラミングを学ぼうとしている初学者にとっても取っ付きやすい言語と言えます。





    オブジェクト指向って何?



    オブジェクト指向とは「Object(物体)」と「その物体ができること」を決めそれらを組み上げるようにプログラムを書いていく考え方の事です。


    もう少し噛み砕いて説明すると


    例えばあなたがエンジニアで、
    新たに『車』をプログラムする場合を考えてみましょう。


    「車の機能をもつ物体」には以下のような部品があります。


  • ウインカー2つ
  • ブレーキ1つ
  • アクセル1つ..etc
  • 



    このように書き出していくと
    車には様々な部品が必要になってくることが分かりますね。
    これら部品には


    具体的にはウインカーに“押すと点滅する”という機能や、
    アクセルに“踏むとタイヤが回って前進する”という機能
    ブレーキに“踏むとタイヤが止まる”といった機能など


    が存在し、
    こういった何かしらの入力に対して出力(結果)を返す機能(Function)を各々用意し、これらを組み立てていく事で『車』という最終構築物を実現するという考え方があり、これがオブジェクト指向の基本的な考え方となっています。




    #2 Pythonを実践する


    Pythonは使い易く、分かりやすい本当に素晴らしい言語です。
    どこの国に住んでいて、どんな生活をしてるのかなど全く関係なく
    インターネットに接続できる環境であれば誰でも無料で利用することができます。


    加えてPythonはOpen-Sourceソフトウェアであり
    Linux, Mac, Windows, 他の様々なプラットフォーム上で稼働する事が実現されています。


    Macを利用されているユーザーであれば、Mac購入時にはすでにPythonがインストールされています。
    しかし大抵の場合、最新versionのPythonをダウンロードする必要があるでしょう。


    まずはPythonのversionを確認するためターミナルを開きましょう。
    Macユーザであれば既にこちらのアプリケーションもインストールされているはずです。
    以下を入力し確認してみましょう。

    Python -V



    正しくPythonがインストールされていれば
    以下のような出力結果を得られるはずです。

    Python 2.7.13



    Pythonのバージョンを選択する



    初学者の中ではPython2とPython3どちらを使うべきか悩む方もいます。
    いくつかの構文の違いがありますが、基本的にどちらでも問題なく動作します。

    また一般的にプログラミングでは、最新バージョンのものを使う事が原則です。


    なので皆さんはPython3で学習を進めましょう。
    (2020年現在、Python2はサポートが切れ、エンジニアによるソフトウェアのメンテナンスが行われていません。Python3を利用しましょう。)

    またPythonを使うべき詳しい理由はこちらの記事に載せていますので
    気になる方は確認してください。



    Pythonをインストールする



    基本的にMacBookユーザであれば、最初からインストールされてるので必要ないですが
    PCに搭載されたOperating Systemの種類に関わらずPythonはPython Software Fundationからダウンロードする事ができます。

    OSとプロセッサー(32bitか64bit)を確認してそれらに合った物をダウンロードし環境にインストールしましょう。



    また各OS毎のインストール方法は以下です。


    ・Mac: MacBookユーザであれば様々なversionのPythonをインストール及び管理するのに
    実際僕も利用しているHomebrewを利用することを強くお勧めします。もちろん無料です。
    このディレクトリを確認してください。Pythonはこちらからダウンロードできます。


    ・Linux: PythonはLinuxでの様々な特徴を含んでいます。
    必要であればmackage-managerを使ってPythonを最新versionにアップグレードしてください。


    ・Windows: PSFから直接ダウンロードしてください。




    Homebrewとは:
    HomebrewとはmacOS上で動くOSSです。
    wikipediaではこのように紹介されています。


    Homebrew(ホームブリュー)は、macOSオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである。MacPortsやFinkと同様の目的と機能を備えている。LinuxのDebianのAPTに似た使用感で急速に利用が広がっている。
    HomebrewはMax Howellによって書かれ、Ruby on Railsコミュニティーで人気を得てきており、その拡張性を評価されている。



    噛み砕いて説明するとmacOSの為のソフトウエア管理ツールと言えます。様々なversionのソフトウェアを管理してくれ、installおよびuninstallをターミナルで簡単に実行できる優れものです。
    ターミナルを開き以下のコマンドを実行すれば簡単にインストールする事ができます。MacBookのエンジニアは殆どインストールしてると思います。めちゃくちゃ便利です。

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"




    PythonのInstall状況を確認する



    それではPythonが開発環境に正しくインストールされているか確認してみましょう。

    Python Shell


    ・Mac: ターミナルを開き、PythonもしくはPython3と入力してください。


    ・Linux: ターミナルを開きPythonと入力してください


    ・Windows: CMDを開き、PythonもしくはPython3と入力してください




    Interactive Python Shellを開けたらPythonを実行して見ましょう。
    すると以下のように表示されるはずです。(python3実行時)

    Python 3.6.5 (default, Apr 23 2018, 10:00:00)
    [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>



    ここで初めてのBuilt-in functionであるprint関数を実行してみましょう。
    (以降>>>はPythonの対話環境に入っていることを表しています。貴方が入力する必要はありません)


    対話環境とは
  • Pythonには対話モード(インタラクティブモード)という機能が用意されています。この環境に入るとインタプリタ上で、そのままPythonプログラムを入力・実行でき、Pythonスクリプトのファイルを作らずともその場でプログラムの確認ができます。




  • Python2の場合:

    >>> print "Hello World!"  

    Python3の場合:

    >>> print("Hello World!")



    これらが正しく実行されると以下の出力を確認できるはずです。

    Hello World!



    とても簡単ですね
    これであなたはPythonプログラマの仲間入りです。



    1行1行コードを入力すると
    Pythonは即座に実行しその結果の値を出力してくれます。
    またこのPythonとの対話環境を抜けるにはexit()関数を入力します。


    >>> exit()



    もしくは以下の操作で環境から出る事ができます。


    ・MacとLinuxユーザー: ControlKey+Dを押してEnterボタンをクリック


    ・Windowsユーザー: ControlKey+Dを押してEnterボタンをクリック







    まとめ



    プログラミングはエラーとの戦いです。
    エンジニアをしているとコンピュータに何度も自分のプログラムを否定され
    修正し、また否定され。。。と繰り返すでしょう。
    特に初学者には顕著にこれが起きます。しかしそれは普通な事で誰もが経験する事です。


    プログラミングを学ぶ者にとって重要な資質の1つは忍耐力かも知れません。
    加えて自分でGoogle検索を駆使し原因を調べ、エラーを解決する力が求められるでしょう。


    しかし、こういった泥臭い努力と経験の結果としてエラーが解消され
    自分の書いたプログラムが実行されると深い快感を得ることができます。


    おそらくそれ故にプログラミングを愛している人間が多いのでしょう。


    (AppleのイベントWWDC2019で公開されたpvがとても良くこれを描写しています。)



    最も大切な事は『楽しみながらプログラミングすること』です



    自分のペースで良いんです。
    エラーがどうしても解消されないなら一旦机を離れ、散歩でもしてみましょう。
    皆さんが気分が向いた時
    pcに向かってコードをチェックすると意外な見落としを発見できたりしますよ。
    ぜひプログラミングを楽しんで取り組めるようにしましょう。

    今回は以上です。
    ではでは



    続編はこちら↓↓





    人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します

    人気記事 CS学位取得者がガチでプログラミングスクールを調査してみた件【おすすめのスクール】










    このエントリーをはてなブックマークに追加
    data-ad-format="rectangle" data-ad-format="rectangle"

    返信する

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

    某国立大学大学院(理系)に所属しています。 最近の趣味は人工知能関連の論文を読む事で 研究ではComputer Vision周りを中心に活動しており、 サイドワークとしてデータ分析の業務に関わっています。 本ブログはこれまで筆者が学んできた様々な知識の中から 有益だと思えた情報のみをまとめたものです。 内容は個人の見解であり、所属する機関と関係するものではありません。 Research: is related to Computer Vision Hobby: is to study Artificial Intelligence / Machine Learning.