コンテンツへスキップ

Python入門講座【最新のPython3対応】🔰初心者向けPython入門パーフェクトガイド

  • by

Pythonの全てを1時間で学習できる入門講座です。初心者向け・フル字幕👍コメント欄で質問OK👍世界一わかりやすいPython入門パーフェクトガイドです!

✅目次
00:00 Python入門講座〜イントロ
1:03 Pythonとは
1:32 Pythonで出来ること
1:52 Pythonの活用事例
2:07 Python入門講座 第2章〜環境構築(Pythonの開発環境構築 Mac/Windows対応)
6:22 Python入門者へアドバイス
7:41 Python入門講座 第3章〜 文字列と数値
9:43 文字列
10:07 コメント
11:26 数値
11:42 四則演算
12:18 Python入門講座 第4章〜環境変数
18:58 Python入門講座 第5章〜環境条件分岐(if文)
22:23 bool型(True/False)
22:47 比較演算子
32:30 Python入門講座 第6章〜配列とループ
35:00 辞書(連想配列)
37:23 タプル
38:52 ループ処理(for文)
46:18 Python入門講座 第7章〜メソッド
52:16 モジュール
53:23 ライブラリ
58:06 Python入門講座 第8章〜例外処理(Exception)
1:01:43 Python入門講座 第9章〜クラス
1:09:30 定数
1:10:04 継承
1:11:43 オーバーライド
1:12:52 Python入門講座〜アウトロ

✅学びをブログに書いて学習効果を高めよう!
「IT Engine」〜 エンジニアのための無料ブログ
https://it-engine.tech/users/engineer_new

🎁メンバーシップのご案内
「メンバーになる」ボタンを押して、メンバーシップに入会しよう!
https://www.youtube.com/channel/UCnEEa-IbWQ8_b-dqBgNNu4Q?view_as=subscriber

🎁メンバーシップ特典の解説動画

✅フリーランス無料カウンセリングはこちら
個別に無料カウンセリングを行い、あなたのスキルに見合ったITエンジニアのフリーランス案件(SES)をご紹介致します。
フリーランスに興味があるけれど不安・・という方は、ご相談にのります。
まだ会社を辞めてフリーランスになると決めたわけじゃないけれど、とりあえず自分がどれだけ通用するのか相談してみたい..という方も大歓迎です。まずはお気軽にご相談ください🙂

フリーランス・エンジニアの無料カウンセリング致します

✅動画で紹介したもの
Paiza.io(Pythonの実行環境)
https://paiza.io/ja

Pythonのエディタ(PyCharm)
https://www.jetbrains.com/ja-jp/pycharm/

✅関連動画
━━━━━━━━━
プログラマー養成講座💪未経験でもプログラマーに転職できる!【目指せ年収1000万円】
https://www.youtube.com/channel/UCnEEa-IbWQ8_b-dqBgNNu4Q?view_as=subscriber

Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

✅Python入門講座 ガイド
Python入門講座へようこそ!
この動画は「世界一わかりやすいPyton入門」をコンセプトに、
初心者でも1時間でPythonが学べるチュートリアル形式の入門講座です。

Pythonは習得の難易度が低いため、
初心者のプログラミング入門としてオススメの言語です。
また、Pythonは人工知能(AI)の開発が出来るなど、
言語としての将来性も高いので、熟練プログラマーにもおすすめです!

このPython入門講座は、そんなPythonを世界一わかりやすく解説した動画です!

Pythonは文法がシンプルなので、プログラミング入門に向いているのですが、
その一方で、
・タプルと配列がややこしい
・クラスメソッド引数のselfがわかりづらい
など、Python独自の、書き方のクセがあります。

そんな分かりづらいポイントも、
このPython入門講座さえ見れば、バッチリ分かる内容になっています!

使用楽曲
https://it-engine.tech/blogs/26

#未経験から年収1000万円を目指すプログラマー養成講座 #Python入門 #Python

python入門講座へようこそ

プログラマーのせお丸です

この動画はこれから

pythonを勉強してみたいという

初心者の方に向けて

Pythonのすべてを分かりやすく解説した

入門講座です

でもPythonて難しいんですよね?

と思っている方ご安心ください

Pythonは初心者向けのプログラミング言語なので

中学生でも覚えることができます

そしてあなたも

この動画をきちんと最後まで見ていただければ

1時間後にはPythonが書けるようになっていますので

そんな1時間後の未来を手に入れるためにも

ぜひ最後まで動画をご覧ください

またご質問などはyoutubeの
コメント欄へ書き込みをお願いします

なおこのチャンネルでは

未経験から年収1千万円を目指すプログラマー養成講座
を配信していますので

是非チャンネル登録をして

他の動画も覗いてみてください

それではpython入門講座スタートです

Pythonはプログラミング言語のひとつです

初心者でも覚えやすく使いやすいのが特徴です

そんなPythonは世界中で人気があり

2020年の世界言語ランキングでは第二位

そして高収入な言語ランキングでも第二位でした

Pythonは将来性もすごく高い言語ですので

今最もオススメなプログラミング言語です

それではpythonで何が出来るのかを見ていきましょう

Pythonと言えば有名なのがAIつまり

人工知能の開発をすることができます

その他にもwebアプリを作ったり

スマホアプリを作ったり

あとはゲーム開発なんかもできちゃいます

実は皆さんが普段使っている

こんなサービスもPythonでできています

youtubeや

インスタグラムそして

あのgoogleマップも

実は裏ではpythonで作られています

pythonが使えるようになると

いろんなことができそうですね

それではここからは

実際にpythonのコードを書いていきましょう

そのためには、まずPythonのコードを書いて

実行するための環境が必要になります

そこで今回はPaiza.ioというサイトを紹介します

こちらのサイトがPaiza.ioというサイトです

このサイトを使うと

面倒なインストールなどを一切しなくても

すぐにpythonが実行できる環境が整っています

このサイトのurlは

概要欄に貼っておきますので
皆さんも一緒に行ってみてください

それでは実際にやってみます

まずは動画の概要欄のurlから

こちらのPaiza.ioを開きましょう

そしてコードの作成を試してみるという

こちらのボタンをクリックします

するとこのような画面になります

左上のこちらのボタンをクリック

すると、いろんな言語が切り替えられるようになっています

今回はpython3というのを選びましょう

たったこれだけでpythonを実行する環境が出来上がりました

使い方を説明していきます

この黒い画面の部分にpythonのコードを書きます

そしてこちらの下の実行ボタンを押すと
pythonのコードを実行した結果が表示されます

それでは実際にやってみます

まずはこちらの黒い画面に

このように書いてみましょう

まずはprintと書きます

そしてこのようにカッコ記号で囲います

カッコの中はタプルクォーテーションで囲い
“こんにちは”という文字を書きます

それではこのプログラムを書いて実行ボタンを押してみると

ここに”こんにちは”と表示されました

pythonでは

このようにprint(“こんにちは”)と書くと

“こんにちは”という文字を出力する

というプログラムになります

なおプログラミングの世界では

このプログラムのことを

ソースコードと呼びます

そしてこちらの実行した結果のことを

出力と呼びます

このようにPythonを実行するには環境が必要になります

まずはPythonに触れてみたいという方は

先ほど紹介したこちらのPaiza.IOで良いかと思います

そして一通りpythonを勉強して

いよいよ本格的に開発を進めるフェーズになったら

自分のパソコン上でpythonが実行できるような
環境を作りましょう

その時に準備するものは二つです

まず一つは、Pythonを自分のパソコンに
インストールする必要があります

これはmacとwindowsで
インストール方法がそれぞれ違うので

それぞれのやり方をこの動画の概要欄に貼っておきますが

まだ動画を止めずにこのまま見てください

そして自分のパソコン上で開発をするには

コードを書くためのエディタも必要になります

無料でおすすめのエディタは

こちらのPycharmというエディタです

こちらがPycharmの公式サイトです

このサイトのurlは概要欄に貼っときます

そしてPycharmには有料版と無料版があります

皆さんは無料版をダウンロードして使いましょう

ダウンロード方法は

こちらのダウンロードというボタンを押します

するとこのように

プロフェッショナル版とコミュニティ版
というのがあります

こちらのコミュニティ版というのが
無料で使える方なので

こちらをダウンロードしてください

本格的に自分のパソコン上で開発をする時は

pythonのインストールと

エディタのインストールが必要になります

ですが、まずは練習用ということであれば

こちらのPaiza.IOで

お手軽に始める方をお勧めします

これでいよいよPythonを書く準備が整いました

それではここからは

実際にpythonを書いていきましょう

私はこちらの本格的な環境の方で
コードを書きながら解説していきますので

皆さんが使うPaiza.IOとは
見た目が違うかもしれませんが

どちらの環境でコードを書いても

結果は一緒になりますのでご安心下さい

それでは一緒にpythonを書いていきましょう

それではpythonの書き方を解説していきたいのですが

ここで皆さんにお願いがあります

この動画は1時間でpythonを覚えられます
というコンセプトで

初心者向けに出来るだけわかりやすく解説していますが

実際にPythonが身につくかどうかは皆さん次第です

せっかく皆さんはpythonが書けるようになりたいと思って

この動画を見て頂いていますので

私から皆さんへふたつアドバイスがあります

そのアドバイスはこの二つです

一つはこの動画を最後まで見ることです

そしてもう一つは動画を見るだけではなくて
体験をすることです

体験をするというのは
どういうことかというと

ただなんとなくyoutubeを見ているだけではなくて

一緒にこの動画のコードを真似しながら
プログラミングをした方が

しっかりとPythonが身につきます

またコード書くだけではなくて

動画を見ながら学んだ重要なポイントは
ブログにまとめておきましょう

このチャンネルでは

IT Engineという無料のブログサービスを
提供していますので

このIT Engineで重要なポイントをメモしながら

この動画をご覧いただければと思います

こちらの二つのアドバイスは
めちゃくちゃ重要ですので

ここで一旦動画を止めて
準備することをお勧めします

それではいよいよ

Pythonの書き方を学んでいきましょう

それではここからは

pythonの書き方を解説していきます

まずはpythonを書くためのファイルを作ります

Paizaの環境選択した人は

ファイルを作らなくても
この黒いところに

pythonのコードを書いていけばいいだけなので

ファイルを作るという手順は不要ですが
一応覚えておいてください

まずはエディタを開いて

新規ファイルの作成を行います

こちらのPycharmというエディタで

新規ファイルを作成する場合は

こちらで右クリックをして

そしてpythonファイルというところを選びます

そしてファイル名として

今回はsample.pyというファイルを作ります

このようにpythonでは.pyという

拡張子のファイルを作ります

それではエディタに、print(“こんにちは”)

と書いて実行してみましょう

pythonのプログラムを実行するときは

ターミナルを開いてこのように書きます

pythonと書いてその後にファイル名を指定します

これでエンターを押すと

このようにpythonのプログラムが実行されました

なおターミナルというのは

プログラマーがよく使っている

この黒い画面のことです

ターミナルをまだ使ったことがない方は

過去動画の方で解説していますので

まずはこちらの動画をご覧ください

こちらの過去動画のurlは

概要欄に貼っておきます

pythonのバージョンが古い場合は
こんなエラーが出ることがあります

syntax_errorで

Non Ascii Character

なんちゃらと書かれた

こんな感じのエラーが出ることがあります

これは文字コードを指定してくださいね

という意味のエラーになります

もしこのエラーが出てしまった時は

プログラムの先頭にこの1行を付け足します

これでこのファイルの文字コードはutfですよー

という宣言になります

これはpythonのバージョンが古い場合の話ですので

頭の片隅にでも覚えておけば大丈夫です

先ほど出力した”こんにちは”という文字は

pythonでは文字列と呼びます

文字列は半角のダブルクォーテーションか

シングルクォーテーションで囲みます

クォーテーションで囲まずに文字を出力した場合は

エラーが発生しますので

必ずクォーテーションで囲むようにしましょう

コメントとは
ソースコードの中にメモ書きができる機能です

コメントの書き方は

先頭に半角のシャープをつけるだけです

こちらの例でいうと

この茶色になっている部分がコメントです

コメント1のように

1行まるまるコメントにすることもできますし

こちらのコメント2のように

行の末尾にコメントを入れることもできます

この茶色になっているコメント部分は

プログラムの実行時には無視されます

ですのでこのコードを実行すると

こんにちは という文字が出力されるだけです

皆さんもここで一旦動画を止めて

このサンプルのようにコメントを書いて

実行してみてください

コメントが複数行にまたがる場合は

このように書きます

クォーテーション三つで囲まれた部分は

その全体がコメントになります

この三つのクォーテーションは

シングルコーテーションでも

ダブルクォーテーションでもどちらでも構いません

文字列はプラス記号を使うと連結することができます

例えばこのように

“python”という文字と”入門”という文字を

プラス記号連結します

これを実行すると

“python入門”という文字が出力されます

pythonでは

文字列の他に数値を扱うこともできます

数字にクォーテーションをつけずに

このように書くと

文字列ではなく数値として扱われます

こちらは文字列

こちらは数値です

数値を使うといろんな計算を行うことができます

例えば
プラス記号を使った場合は足し算になりますし

マイナス記号を使った場合は引き算になります

なお掛け算の場合はアスタリスク記号

割り算の場合はスラッシュ記号となります

これらの記号はすべて半角なので注意をしてください

またこちらのように

複数を組み合わせて計算をすることもできます

それでは皆さんも実際にコード書いて

いろんな計算を実行してみてください

変数とは値を入れておく箱のようなものです

変数は”変数名=値”で定義をします

それでは実際のコードを見ながら解説をしていきます

変数を使うには

まず初めに変数を定義する必要があります

それをやっているのが

この一行目のコードです

tmp=python入門と書いていますが

これはtmpという名前の変数に

python入門という値を代入する

という意味になります

代入とはどういうことかというと

tmpというこの箱の中に

python入門という文字列を入れました
という意味です

そして次の行でprint(tmp)と実行すると

python入門と出力されます

どうしてこうなるのかと言うと

tmpという変数

つまりこの箱の中には

python入門という文字列が入っていますので

このコードを実行すると箱の中身が取り出されて

Python入門という値が出力されるわけです

このように値を入れておく箱のことを

変数と言います

変数を定義するときには

“変数名=値”形式で書きます

変数についていくつか補足です

変数に代入する値は
文字でも数値でも何でもオッケーです

ですのでこのように

数値を代入しても構いません

次の注意点としては

変数名はクォーテーションで囲ってはいけません

これだとエラーになってしまいます

次に変数名はどんな名前をつけてもOKです

例えばtmpではなくfooのような別の名前でもOKです

ただし変数名に使える文字は

半角の英数字とアンダーバーのみです

ここに書いてありますが

半角の英数字とアンダーバーしか使えないので
注意をしましょう

このようにfoo_12のような名前はOKです

ただし先頭に数字を持ってくることはできません

この場合だとエラーになってしまいます

プログラムは上から順番に実行されます

ですので変数を定義する前に

このようにその変数を使おうとすると

エラーが発生しますので注意をしましょう

変数を使うとこんなことも出来るようになります

一つ目は数値の計算です

aという変数には数値の1を代入して

bという変数には数値のにを代入します

そしてa+bを実行すると
3という結果が返ってきます

もう一つは文字の連結です

aという変数には

pythonという文字列を代入して

bという変数には

入門という文字列を代入します

そしてa+bを実行すると

文字列同士の連結になりますので

今度はPython入門という結果が返ってきます

なお変数は上書きすることができます

それはコード見てきましょう

1行目では

変数にpythonという文字列が代入されます

そして2行目では

変数にpython入門という文字列が
代入されることで

ここで上書きが発生します

その結果この3行目を実行すると

結果はpython入門という

こちらの上書きされた結果が返ってきます

このように変数は

後から上書きすることができます

また変数の値が数値の場合も

同様に上書きをすることができます

数値の場合は

このように自分自身に1を足す

なんていう書き方もできます

解説するとまず

一行目では変数iに1が代入されます

そして2行目で

1+1の計算結果が変数に代入されます

その結果最後の行では2

という結果が返ってきます

なおこの計算の書き方には基本形と

省略形があります

こちらの左側が基本形

そしてその省略形がこの右側の書き方です

i+1という書き方は省略すると

このように書くことができます

こちらの省略形の書き方と

こちらの基本形の書き方は

どちらも同じ意味になります

変数は繰り返し使うことができます

つまり変数から値を取り出しても

値はそのまま残り続けます

実際のコードを見ていきましょう

まずは1行目で

programという変数に

pythonという文字を代入します

そして次の行を実行すると

python入門と出力されます

最後の行を実行すると

python講座と出力されます

このように変数の値は

何度使っても消えることはないので

繰り返し使うことができます

文字列に変数を埋め込む方法を紹介します

まずはクォーテーションの手前にfをつけます

そして波括弧の変数とこのように書くことで

文字列の中に変数を埋め込むことができます

それでは実際のコードを見ていきましょう

1行目では

変数iに数値を代入しています

2行目では

変数xに文字列を代入しています

そしてこのように文字列に変数を埋め込みます

まずはクォーテーションの手前に

このようにfと書きます

そして波括弧を使って

このように文字列の中に変数を埋め込んでいきます

これを実行すると

第1回python入門と出力されます

このように文字列の中には

変数を埋め込むことができます

これを変数展開と言います

注意点としてはクォーテーションの手前に

fをつけることを忘れないでください

この書き方はpythonのバージョンが
新しくないと通用しません

古いバージョンのpythonでこの書き方をすると
エラーになりますので

頭の片隅に覚えておきましょう

Pycharmという

エディタのデバッグ機能を使うと

値の解析を行うことができます

それが実際にやってみましょう

まず始めにこのようなコードを準備しました

そしてこの4行目のこの手前のスペースの部分

ここをクリックすると

このように背景が赤くなります

この状態でプログラムのファイル名を右クリックして

デバッグというところを実行します

するとこのように

先ほど指定した赤いところで

プログラムの実行が止まって何やら

このような画面が出てきました

この画面はプログラムを解析するための画面です

それではこれを使って

プログラムの解析を行っていきましょう

まずは変数xですが

str1と書いてあります

このstrというのは

文字列ですよーという意味になります

つまり、変数xは文字列の1です
という解析結果が

ここに表示されているわけです

次に変数yを見て行きます

こちらはint1と書かれています

intとはどういうことかと言うと

英語で数値を表しています

つまりこれは数値の1ですよ

という解析結果が表示されているわけです

このようにPycharmでは

デバッグ機能を使うと

値の解析を行うことができます

なおこのように

プログラムを途中で止めて

解析を行うことをブレークポイントといいます

値には数値や文字列のように

いくつかの種類があります

このような値の種類のことを型と言います

数値はint型

文字列はstr形となります

型は難しく考える必要はありません

int型というのは単純に数値のことです

str型というのは単純に文字列のことです

Pythonには数値や文字列の他にも

いくつかの型がありますが

それはこの後紹介していきます

pythonでは

二つの値が等しいかどうかを
比較することができます

比較を行うときはイコール記号を二つ使います

そして比較結果が正しい場合はTrue

正しくない場合はFalseという結果が返ってきます

それでは実際のコードを見ていきましょう

1行目のコードでは

左側の1という数字と右側の1という数字が
同じかどうかをチェックしています

この場合二つの値は同じなので

Trueという結果が返ってきます

2行目のコードでは

1という数字と2という数字が
同じかどうかチェックしています

この場合二つの値は等しくないので

Falseという結果が返ってきます

このように二つの値が等しいかどうかを
チェックするときは

イコール記号を二つ使います

イコール記号がひとつだけだと
代入になってしまうので

間違わないように注意して下さい

そして比較結果が正しい場合はTrue
正しくない場合はFalseが返ってきます

なおこの比較式の部分を

プログラミングの世界では条件式呼びます

比較結果のTrue Falseのことを

プログラミングの世界ではbool型と呼びます

bool型は比較結果なので

必ずTrueかFalseのどちらかになります

それ以外の結果になることはありえません

なおpythonでは

True Falseの先頭は

このように大文字になりますので

注意してください

比較には他にもいろんな種類があります

いずれもその条件式が正しければTrue
正しくなければFalseが返ってきます

例えばこのように

小なりbと書くと
aよりbが大きいかどうかの比較になります

正しければTrue
正しくなければFalseが返ってきます

また3行目のコードのように

小なりの後にイコール記号を付け足すと

aはb以上かという比較式になります

次に4行目5行目のように
小なり記号ではなくて

大なり記号を使った場合は

aよりbが小さいかどうかといった判定になります

最後の行は

aとbが異なる場合にTrueを返します

実際にどんな結果が返ってくるか

皆さんもコード書きながら色々と試してみてください

それでは問題です

これらの条件式はどんな返ってくるでしょうか

一つずつ見ていきましょう

まずは1問目ですが

これは1と2が等しいかどうかの条件式になります

これは正しくないので

結果はFalseが返ってきます

次の2問目は1より2が大きいか

という条件式です

結果はTrueです

3問目は

1は1以上かという条件式です

結果はTrueです

最後の4問目は
1は2より大きいかという条件式です

結果はFalseです

比較を行う際の注意点です

Pythonでは

基本的に形が違うものを比較すると

Falseが返ってきます

例えば数値の1と文字列の1を比較した時は

結果はFalseとなります

ただし例外として
整数と総数は比較することができます

例えば整数の1と小数の1を比較した場合は

結果はTrueとなります

if文を使うと

条件式の結果によって

処理を分岐させることができます

if文の書き方はこちらです

ifの後に条件式とコロンを書きます

そして次の行に半角スペースを四つ書きます

これをインデントと呼びます

Pythonでif文を書くときには

この場所に半角スペース四つの
インデントを入れないと

エラーになってしまいますので注意しましょう

そしてインデントの後ろに

条件式がTrueだった場合の処理を書きます

これがpythonでのif文の書き方になります

それはif文を使った

実際のコードを見ていきましょう

このコードは

scoreが80点以上だったら”合格点です”と

表示されるプログラムです

ifの後ろの条件式の部分には

scoreが80以上という条件式が設定されています

そしてこの条件式がTrueだった場合

こちらの処理が実行されます

今回の場合だと

合格点です という文字が出力されます

では1行目のこちらの変数scoreに

70を代入したらどうなるでしょうか

その場合はこの条件式が

Falseになりますので

このifの中身は実行されません

つまり何も表示されません

処理の流れとしてはこんなイメージになります

プログラミングは

上から下に向かって

順番に処理が行われていきます

ですので、この条件式がTrueだった場合は

123と表示されます

この条件式がFalseだった場合は

この行は実行されませんので

その場合は1と3だけが表示されます

if文の中にelseという文を入れると

Falseの場合の処理も書くことができます

それでは実際のコードを見て行きましょう

今度はif文の中にelse

という文が含まれています

すると条件式がFalseだった場合の処理を

ここに書くことができます

注意点としてはelseの後にも

このようにコロンを入れましょう

またifとelseの縦の位置は

必ず揃えるようにしてください

例えばこちらの右側のような感じで

ifとelseの位置が揃ってない場合は

エラーになりますので注意をしましょう

Pythonのインデントについて

もう少し補足をします

インデントとは

半角スペース四つのことでした

pythonでは

このインデントが意味を持っています

それではこちらのコードをご覧ください

一つ目のprint部分は

条件式がTrueのときに実行されます

何故かと言うとインデントによって

このifのブロックの中に

入っているからです

次に二つ目と三つ目のこちらのprint文ですが

このふたつはインデントによって

elseのブロックの中に入っています

ですので条件式がFalseだった場合に実行されます

それでは最後のこのprint文は

どうなるでしょうか

これはインデントが付いていませんので

縦の位置関係で見ると

if elseと同じライン上にいます

ですのでこの最後のprint文は

if else文の外にいることになります

つまりif elseは

ここからここまでになりますので

最後のこのprint文は

if elseの処理が終わってから

必ず実行されます

このようにpythonでは

インデントが意味を持っていますので

覚えておきましょう

elif文を使うと

さらに条件を増やすことができます

elif文とはitとelseの間に

さらに条件を追加したい時に使う文です

他のプログラミング言語では

elseif文なんて言い方をしたりもしますが

pythonではelif文を使います

それでは、このelif文の使い方を見ていきましょう

elif文はifとelseの間に

さらに条件を追加したい時に使う文です

今回はelif score>=70

という条件をつけさせてみました

それではこのコードが

どういう動きになるのかを見ていきましょう

まずはscoreが80以上の場合は

合格点ですと表示されます

scoreが70点から79点の場合は

elif文の条件式がTrueになりますので

惜しい と表示されます

scoreがそれ以外

つまり69点以下の場合は

elseになりますので、不合格です
と表示されます

注意点としては

scoreが80点以上の場合

ifの条件式もelifの条件式も

どちらも満たすことになりますが

elif文の中身は実行されません

elifというのは

あくまで上の条件を満たさなければ

次はこちらの条件も試してね
という文なので

elifよりも上の方で
何らかの条件式を満たした場合は

その時点で終了となります

条件式はいくつかを組み合わせることもできます

条件式を組み合わせる場合はand使います

こちらのコードをご覧ください

このように書くと

全ての条件式がTrueだったらTrue

それ以外はFalseという意味になります

ですので左側のこの条件式がTrueかつ

右側のこの条件式もTrueだった時に

初めてTrueが返ります

どちらか一方でも

Falseだったらその瞬間にFalseが確定します

このような式のことをand条件と呼びます

条件の組み合わせにはもう一つ、
OR条件というものがあります

コードの描き方はandではなくorを使いますが

or条件の場合は複数の式のうち

どれか一つでもTrueだったらTrueを返します

つまりFalseが返ってくるのは

全ての条件が全滅でFalseだった場合のみです

notを使うと

TrueとFalseを逆転させることができます

こちらの例を見てください

このように条件の前にnotを付け足すことで

TrueとFalseが逆転します

ですのでこの場合

xがFalseだったら

こちらの方が実行されて

xがTrueだったら

こちらのelseの中身が実行されます

それではここまでのまとめとして実際に

コード触って遊んでみましょう

私が書いてみたサンプルはこちらです

if elseを使った条件式や

and条件を使った条件の組み合わせ
などが使われています

ちなみにこちらに注目してください

if文やelse文の中に何も書くことがないときは

passというものを使います

それとこのコード中では

さらっとif文の中に

またif文を書いたりもしています

このようにif文の中に

さらにif文が入っている状態を

プログラミングの世界ではネストと呼びます

複数の値をまとめたものをリストと言います

リストは配列とも呼ばれます

この講座では配列という呼び方で解説を進めていきます

配列を使う時は

このように半角のブラケット記号を使います

ブラケット記号というのは

このように角のあるカッコ記号です

これで中身のない空の配列となります

配列の中には

,区切りで複数の値を入れることができます

例えばこのようにPHP,Rubyと書くと

この一つの配列の中に

PHP rubyという

文字列が格納された状態になります

同様に数値も配列の中に入れることができます

また、こちらの例のように

文字列型と数値型などを混在させてもOKです

なお配列は数に上限などはありませんので

配列には好きなだけ値を入れることができます

配列は先頭から順番に0から始まる番号が

自動的に割り当てされます

この番号のことをインデクスと呼びます

このコードの場合

先頭の値はPHPですので

ここにインデクス番号0番が自動的に割り当てされます

その次のRubyはインデクス番号1番

その次のPythonはインデクス番号2番となります

次にこの配列の値を

一つだけ取り出してみましょう

この配列はarrという名前の変数に代入しておきます

そして配列から値を取り出すときは

このようにインデクス番号を指定します

arrの0番を指定すると
PHPという文字が返ってきます

なぜかと言うと

インデクス番号0番はPHPだからです

同様にインデクス1番を指定するとruby

インデクス2番を指定すると

pythonという文字が返ってきます

なお配列に格納した一つ一つの値の事を
要素と呼びます

また配列から値を取り出しても

配列の中身は変わりません

つまりこのように配列の要素を取り出しても

この配列はこの三つの文字列が
格納されたままの状態となります

さて配列はインデクス番号を指定して

要素を取り出すという解説をしましたが

インデクス番号って覚えづらいですよね

配列の何番目に

何の値が入ってるかなんて

覚えていられません

そういう時は配列ではなく連想配列を使います

なおpythonでは

この連想配列の事を辞書と呼びます

辞書と連想配列は同じ意味です

他のプログラミング言語では

連想配列と呼ぶことが多いので

この講座では

連想配列という呼び方で説明を進めていきます

連想配列は配列と非常によく似ています

ですがインデクス番号で管理するのではなく

一つ一つの要素に

好きな名前をつけることができます

例えば配列にpython ruby

という文字列を格納するときは

こんな書き方をしましたが

連想配列の場合はこんな書き方をします

まずはpythonという値に対して

好きな名前をつけることができます

今回はkey1という名前をつけました

このコードのようにコロン記号を使うと

この値に対しての名前はこれだよ

という指定になります

同様にRubyという要素に対しては

key2という名前をつけました

そして値を取り出すときには

このように名前を指定して値を取り出します

key1という名前を指定して値を取り出すと

pythonという結果が返ってきます

このように配列では

インデクス番号で管理をしていましたが

連想配列では要素を一つ一つに

好きな名前をつけて

その名前を指定して取り出します

これが連想配列です

なお連想配列で使う時の名前のことを
キーと呼びます

配列ではインデクス、連想配列ではキーを
指定して要素を取り出すのです

なおpythonでは
配列つまりリストはlist型
連想配列はdist型となります

distというのは辞書
つまりディクショナリの略です

Pythonにはタプルという特殊な配列があります

こちらのコードをご覧ください

こちらが普通の配列です

そしてこちらがタプルです

このように角のついていない
カッコ記号を使うとタプルとなります

ではタプルは普通の配列と何が違うのでしょうか

普通の配列はこのように要素を

上書きすることができます

このコードを実行すると

インデクス0番つまり
この1の値が3で上書きされますので

その結果このような配列になります

ですがタプルで同じことをするとエラーになります

このようにタプルは後から変更することのできない配列です

この配列は絶対に変更されたくないという
特別な事情がある場合は

このようにタプルを使います

ですが普段使いとしてはこちらの普通の配列を使います

配列や連想配列を使うとこんなこともできます

まずは配列の中に配列を入れることができます

これを次元配列と呼びます

または配列の中に連想配列を入れたり

連想配列の中に配列を入れることもできます

プログラムが複雑になってくると

こういう使い方をすることもありますので
覚えておきましょう

配列の要素を一つずつ順番に取り出して処理
することをループ処理と呼びます

ループ処理を行うときはfor文を使って
このようなコードを書きます

for 変数名 IN 配列:
そして次の行にはインデント入れてから

ループ中に行う処理を書きます

このようにインデントが続く限りは
ループ中の処理として扱われます

そしてインデントが終了すると

ループの外の処理として扱われます

実際のコードを見ながら
もう少し詳しく解説していきます

まずはarrという変数に配列を代入しています

そしてループ構文の配列の場所に
このarrを指定します

次に変数名の部分は何でも良いのですが

今回はlangという名前の変数名にしました

これでこの変数arrの

要素を一つずつ順番に取り出して処理してくださいねという

ループ文の構文になります

一つずつ順番に取り出された値は

この変数langにセットされます

それでこのループ処理の動きを見て行きましょう

まずはじめに最初の要素である
pythonという文字が

取り出されます

そして取り出された値は

変数名の部分にセットされます

今回だとこの変数langという部分に
Pythonの値がセットされます

そしてループ中の処理の部分では

この変数を使って好きな処理を書くことができます

今回はprint langと書いたので

この変数の中身が出力されます

その結果1周目のループでは
pythonという文字が出力されます

次にループのインデントがここで終わりになりますので

1回目のループは終了して
配列の次の要素に処理が移ります

ですので次はRubyという文字が変数langにセットされます

そしてその状態で2周目のループ処理を行いますので

2周目の場合も同様にprint langで
Rubyという文字が出力されます

そしてまた終わりにやってきますが

これで配列の要素はすべて処理が終わりましたので

ようやくここでループ処理を抜けて
下の行へとプログラムの実行が進んでいきます

このようにfor文を使うことで
配列の要素を一つずつ取り出して

処理を行うことができます

これをループ処理と呼びます

なおこの変数名はループの中でしか使えません

ループの外でこの変数を使おうとしても
エラーになりますので注意しましょう

連想配列のループ処理について見ていきましょう

今度は変数arrは配列ではなく
連想配列になっています

そしてこの連想配列を使って
先ほどと同じようにfor文を実行してみます

するとどうなるのかと言うと

このように連想配列のキーだけが取り出されます

pythonでは、このように連想配列でfor文を使うと

キーの値だけが取り出されるのです

では連想配列の値の部分を取り出したい場合は
どうすれば良いのでしょうか

その答えはこちらになります

おさらいになりますが
連想配列で値を取り出すときは

このようにキーを指定するのでした

そしてこのループ処理の中では変数keyに
このようにキーの値が入ってきます

ということで

arrのキーの指定としてこの変数keyを使って

このように書くことで
値を取り出すことができます

もう一度わかりやすく説明すると

ループの一周目では変数keyはkey1という値です

ですのでarr[key]とこのように書くことで

これを実行したのと同じ意味になります

ですのでPythonという値が取り出されます

次の2周目も同様に

変数型にはkey2という値が入ってきますので

このように書くことで今度はarrのキーの2番

つまりRubyという文字列が取り出されます

さて連想配列のループ処理について解説しましたが

実はもっと簡単に書くこともできます

まずはforの後ろのこちらの変数の部分ですが
今回は,で区切って

二つの変数を宣言しています

そしてarrの後ろに.items()と書いています

こうすることで連想配列のキーと値を
両方いっぺんに取り出すことができます

変数keyの部分には連想配列のキーが代入されて、
変数valの部分には連想配列の値が代入されます

では実際にこちらのコードを見ていきましょう

今回はループ処理の中では

このようなprint文を実行してみます

一周目のループ処理では変数keyにはkey1

変数valにはpython

という文字列が代入されます

その結果このprint文を実行すると

“key1はPythonです”と表示されます

2周目も同様に”key2はRubyです”と表示されます

このようにitems()を使うと

連想配列のループ処理が簡単になりますので覚えておきましょう

ループ処理をスキップさせたい場合は
continue文を使います

こちらのfor文ではlangがRubyの時は
このcontinue文が実行されます

continueが実行されると
そのループ処理はスキップされて

次のループ処理に進みます

こですのでこのコードを実行すると

の配列のうちlangがRubyの時だけ
処理がスキップされますので

その結果pythonとPHPこの二つだけが出力されます

このようにループをスキップさせたい時は
continue文を使います

ループ処理を強制終了させたいときは

break文を使います

先ほどのcontinue文を使うと
そのループだけをスキップしますが

break文を使うとその時点で
ループの処理全体が強制終了となります

それではこちらの実際のコードを見て行きましょう

またこちらの配列をループ処理して行きます

一周目のループではpythonという文字が
ここで出力されます

そして2周目のループでは変数langには
Rubyという文字が代入されます

そしてここのif文で
lang=Rubyの条件に当てはまりますので

ここのbreak文が実行されます

break文が実行されるとその時点で
ループ全体が強制終了となりますので

ここでループ処理が終了します

その結果このプログラムではpythonとだけ表示されます

このようにループの全体を強制終了させたい場合は
break文を使います

処理をまとめたものをメソッドまたは
日本語で関数と言います

メソッドは呼び出されるまで実行されません

それでは実際のコードを見ていきましょう

このコードでdefと書かれたこの部分

これが一つのメソッドです

defの後ろにはstudyと書かれてますが
これはメソッドの名前です

メソッドの名前は好きな名前をつけることができます

次に括弧の中にlangと書かれていますが
これは引数と言います

引数はメソッドを呼び出すときにメソッドの外から
代入することのできる変数です

後ほどもう少し詳しく解説しています

次にインデントされたこちらの部分に
二つの処理が書かれています

このメソッドが呼び出されると
この部分の処理が実行されます

このようにメソッドは処理をまとめたものです

そして呼び出されるまでは実行されません

それではさっそくこのメソッド呼び出してみましょう

まずこのプログラムを実行すると
上から順番に処理が流れてきます

ですがメソッドの部分は
呼び出されるまでは実行されないので

このメソッド部分は処理がスキップされて

study(“python”)と書かれた部分が一番初めに実行されます

この行ではメソッドの呼び出しを行っています

このように

メソッド名を書くことでメソッドの呼び出しになります

次に(“python”)と書かれていますがこの部分では

引数にpythonという文字列を渡しています

変数langにpythonという文字列が代入されます

そして今studyメソッドが呼び出されましたので
このメソッドの中身が実行されます

変数langには引数としてpython

という文字列が渡されていますので

今回は”python入門” “python講座”という
2行が出力されます

これがメソッドの基本動作です

さてメソッドの引数についてもう少し補足をします

こちらのask()というメソッドを見てください

引数がありません

このように引数を受け取る必要のない場合は
引数なしとなります

次にsay_ageメソッドを見てください

今度は引数が二つあります

このように複数の引数を受け取りたい場合は

,で区切って複数の引数を持たせます

呼び出し側もこんな感じで
,で区切って引数を渡します

引数にはデフォルト値を持たせることができます

デフォルト値とは何も指定がない場合に採用される値のことです

実際のコードを見ながら解説していきます

今回は引数の宣言と同時に何やら値を指定しています

これがデフォルト値になります

それではこのメソッドを呼び出してみましょう

まずは引数なしで呼び出してみます

すると引数の指定が

何もない場合はデフォルト値が採用されますので

引数ににはデフォルト値である
私という文字が採用されます

同様に引数ageにはデフォルト値である
30という値が採用されます

その結果この呼び出しでは
私は三十歳ですと出力されます

次にこちらのコードですが今回は引数を
ひとつだけ指定してあります

ですので変数名には君という文字が採用されます

そして変数ageは何も指定がないので
今回もデフォルト値の30が採用されます

その結果 君は30歳です と結果が返ってきます

そして最後に二つとも引数を指定した場合は

こちらはどの引数もデフォルト値ではなく

この指定された値が採用されます

その結果 君は40歳です と出力されます

メソッドを使う時に重要となる
returnについて解説をします

メソッドの中ではreturn文を使うことができます

returnの役割は二つです

returnが実行されるとその場で
そのメソッドは強制終了となります

そしてもう一つはメソッドの呼び出し側に
値を返すことができます

それではコードを見ながら解説していきます

このコードではageが20以上だった場合に

return大人料金というコードが実行されます

returnが実行されるとその場で
メソッドの処理は強制終了となります

メソッドの中に他の処理が書いてあっても
その部分は実行されません

そしてreturnにはもう一つ

役割があります

それは呼び出し元へ
戻り値を返す役割です

戻り値というのはreturnの
右側に書いてあるこの部分です

今回は大人料金という文字列が
戻り値として呼び出し元に返されます

一方の呼び出し元では

このようにして戻り値を受け取ることができます

priceメソッドを実行した結果
大人料金という文字列が戻り値として返されます

その結果がこの変数に代入されますので

これをprintしてみると大人料金と出力されます

それでは

returnの戻り値に何も値がない場合は
どうなるのでしょうか

その場合はNoneという値が返ってきます

Noneとは値が何もないことを表す特殊な値です

なおこのNoneは他のプログラミング言語では
nullと呼ばれます

pythonでは別のファイルに書かれたプログラムを
呼び出すこともできます

実際に見ていきましょう

ここに二つのファイルがあります

sample.pyとfile2.pyです

今回はsample.pyからfile2.pyの
helloメソッド呼び出してみましょう

まずは呼び出し元のsample.pyで
import file2と書きます

file2というのは読み込みたいファイルの
ファイル名の部分です

拡張子の.pyは必要ありません。ですので

このようにimport file2と書きます

このimport宣言によって
別ファイルを読み込むことができます

pythonでは別ファイルのpythonプログラムの事を
モジュールと呼びます

それではfile2というモジュールの
helloメソッドを呼び出してみましょう

別ファイルのメソッドを呼び出す時はこのように
モジュールメソッドを呼び出します

これでfile2に書かれたhelloメソッドが呼び出されます

さて先ほどは自分で用意した
モジュールを呼び出しましたが

Pythonにはいくつもの便利なモジュールが
あらかじめ用意されています

例えば日付を便利に操作してくれる
datetimeモジュールや

計算を便利にしてくれる
mathモジュールなどがあります

それでは今回はこちらのdatetimeモジュールを使って

現在時刻の表示を行ってみましょう

現在時刻の表示を行うときは
このようなコードを書きます

datetimeモジュールをimportして

datetime.time.now

このように書くことで現在時刻が表示されます

このようにpythonではいくつもの便利なモジュールが
あらかじめ用意されています

これらの標準モジュールのことを
ライブラリと呼びます

メソッドにはタイプヒントを付け足すこともできます

タイプヒントとは
引数や戻り値の型を指定する宣言のことです

それでは実際のコードを見ていきましょう

こちらの赤字の部分に注目してください

ここで引数や戻り値の型を宣言しています

まずは引数に注目してみましょう

このsay_ageメソッドは、引数meは文字列型
引数ageは数値型で受け取ることを想定しています

meはstr型 ageはint型と、このように引数の型の指定を
赤線の部分で行なっています

書き方としては

引数の後ろにコロンと型の指定を宣言します

次に戻り値の型を見ていきましょう

このメソッドではこのような文字列を
戻り値として返します。

ですので戻り値の型はstr型ですよーという宣言を
この部分で行なっています

コロンの手前にハイフンと大なり記号を入れて
このように戻り値の型を宣言します

このように引数や戻り値の型を指定することを
タイプヒントと言います。

タイプヒントは必須ではありませんので
省略しても構いません

なおこのタイプヒントで宣言された型とは

別の型を使った場合は何が起きるのでしょうか?

例えば引数ageは数値型を期待していますがここに

文字列を渡した場合は一体どうなるのでしょうか?

他のプログラミング言語ではこういう時

エラーになるのが常識なのですが

pythonではエラーになりません

将来的にpythonのバージョンが上がった時には
エラーになるかもしれませんが

現時点のPythonバージョンでは
残念ながら何も起きません

じゃあタイプヒントなんて何も意味がないじゃん!と思いますよね

実はpythonには

mypyというチェックツールがありましてこのmypyでチェックを実行すると型の違反箇所をレポートしてくれます

型の変換について解説します

例えばここにfooという数値型の変数があります

これを文字列に変換したい場合は

strというメソッドを使います

このstrメソッドはpythonに初めから
用意されているメソッドです

これで文字列型へと変換することができます

次はその逆で文字列から数値へ
変換したい場合はint

というメソッドを使います

なお型を変換することをプログラミングの世界ではキャストと言います

型の比較方法について解説します。

type()を使うと値の型を調べることができます

例えばtype()の引数に1を指定した場合は

int型という結果が返ってきます

次に文字列の1を渡してみます。この場合は

strという結果が返ってきます

このようにtype()を使うと
値の型を調べることができます

次に型の比較です

型を比較するときは
イコール記号ではなくisを使います

ですので type(1) is int

を実行するとTrueが返ってきます

同様にtype(1) is Noneを指定すると

int型とNoneで型が違いますので

Falseが返ってきます

このように型の比較を行う場合はisを使います

コード途中で想定外のことが起きた場合は
自分でエラーを発生させることができます

この想定外エラーのことを

例外または英語でExceptionと呼びます

それでは実際のコードを見て行きましょう

このcalc_taxメソッドは引数で

数値を受け取ることを想定しています

ですので文字列など数値以外のものが
引数に渡されるのは想定外です

こういう時は引数が数値かどうかをチェックして
数値でなければ想定外エラーを発生させましょう

引数が数値であるかどうかをチェックするためには
このようにコードを書きます

if type(1) is not int

これで数値でない場合はこのif文がTrueになります

そしてpythonで例外つまり
想定外エラーを発生させる場合は

raise文を使ってこのように書きます

raise Exception
そしてExceptionの引数にはエラーメッセージを指定します

これで

iが数値でなければエラーを発生させる
というコードになりました

例外が発生するとどうなるのかと言うと

その時点で処理はエラー終了となります

実際にこのコードを実行してみると
こんな感じでエラーメッセージが表示されます

Exceptionで”数値を指定してね”と表示されます

例外が発生するとその場でエラー終了になる
と解説しましたが

書き方によっては処理を継続させることもできます

まずはこのコードのようにtryとexceptを使います

tryとexceptの間には
例外が発生するかもしれない処理を書きます

そしてこのtryの中で例外が発生した場合は

その場で全ての処理を中断して
exceptの中へと飛ばされます

これがどういうことなのか
もう少し詳しく見ていきましょう

まずはtryの中でこの行が実行されます

この行ではcalc_taxメソッドを呼び出しますが

引数で文字列を指定しているので

ここで例外が発生します

例外が発生すると
その場でexceptの中へと処理が飛ばされます

ですのでメソッドの中の
残りの処理は実行されませんし

tryの中のこちらの残りの処理も実行されません

例外が発生した時点で直ちにexceptへと飛ばされます

例えるならば悪いことをした時点で
逮捕されて警察署

に連れて行かれるようなものです

このように例外を捕まえることをキャッチすると言います

そしてキャッチされた例外は

自動的にこの変数に格納されます

この変数の使い道としては

このようにエラーメッセージを
表示させることができます

今回の場合はExceptionの引数に指定した

数値を指定してねというエラーメッセージが
ここで表示されます

最後にexceptの中の処理がすべて終了すると

このtry-except構文の外へと処理が進みます

try-except構文の外に書いてある
このprint文は実行されます

このようにtry-exceptというものを使うと

例外が発生しても処理を継続させることができます

ここからはクラスについて解説していきます

クラスは考え方が少し難しくなるので初心者が

つまずきやすいポイントになります

もしあなたがクラスやオブジェクト指向について
まだ理解ができてないのであれば

この動画を一旦ストップしてこちらの過去動画を
見てからこの動画の続きを見てください

この動画は10分でサクッと見ることができます
urlは概要欄に貼っておきます

それではpythonのクラス

について解説していきます

クラスを使うと変数やメソッドを
一つにまとめることができます

今回はクラスを使って猫を作っていきましょう

クラスを作るときはClassと書いて
その横にクラス名を指定します

今回は猫を作りますのでCatというクラス名にします

クラス名の先頭は大文字で始まるようにしてください

クラスの中には変数やメソッドを
まとめて置いておくことができます

まずはこのクラスで使うメソッドを定義してみましょう

今回は__init__(), eat(), cry() という
三つのメソッドを用意しました

ここで注目してほしいのは

クラスの中でメソッドを定義するときは第1引数は
必ずselfという引数になります

このselfが一体何者なのかは後ほど解説します

次にこのinitメソッドで
この猫の名前や体重を引数で受け取ります

そして受け取った引数はself.name=nameのように

selfとついた変数に代入して行きます

このselfととというのはこのクラス自身を表しています

このクラスは

Catクラスですので
このCatの名前は引数で渡されたこの値
このCatの体重は引数で渡されたこの値

となります

ここは後ほどもう少し詳しく解説をしていきます

このようにself.のついた変数のことを

属性またはメンバー変数と呼びます

メンバ変数はクラスの中のどこからでも
アクセス可能な変数になります

次にeat()を見ていきましょう

このメソッドは猫が食事をすると
体重が1kg増えるというプログラムです

体重を増やすためにメンバ変数のweightを
プラス1しています

メンバ変数とは

self.のついた変数のことで、クラスの中のどこからでも
アクセスできる変数のことでした

今回はself.weightの値を1プラスすることで
この猫の体重が1kg増えるということを意味しています

それではここからはこのCatクラスを使って
猫を呼び出してみましょう

Catクラスを呼び出すにはこのように書きます

このようにクラス名を呼び出すとそのクラスの

__init__()メソッドが
呼び出されるルールになっています

そして呼び出し側では二つの引数を指定しています

これらの引数はinitメソッドの名前そして
体重にそれぞれ代入されます

ここで注目してほしいのは

pythonのクラスの中ではメソッドの第一引数が
selfという特別な値になりますが

selfは呼び出し側からの値を受け取らない
特別な変数です

ですのでこのselfの文だけ一つずれて
値が代入されていきます

呼び出し側の第一引数は受け取り側では一つずれて
この第2引数のnameに代入されます

同様に呼び出し側のこの第2引数は一つずれて
こちらの受け取り側の第3引数に代入されます

これはinitメソッドに限らず

クラスの中のすべてのメソッドが
こういうルールになっていますので
覚えておきましょう

それを踏まえた上でこちらのcat1を
呼び出す処理を見ていきましう

第一引数に渡した一郎という名前がこの猫の
名前としてメンバ変数のnameに代入されています

同様に5という数字がこの猫の体重として
メンバ変数に代入されます

これで一匹の猫がこの世に生まれました

この一郎という名前の猫は
cat1という変数に代入しておきます

そしてもう一匹、二郎という
名前の猫も呼び出してみます

二郎は一郎よりも痩せているので体重は3キロです

これでcat1、cat2

2匹の猫がこの世に生まれました。
クラスを呼び出したものをインスタンスと呼びます

それではこの猫に

魚を食べさせてみましょう!

猫に餌を食べさせる時はeatメソッドを使います

eatメソッドはCatクラスの中に定義された
こちらのメソッドです

クラスの中の変数やメソッドを呼び出す時は

このようにインスタンスの後ろに.をつけて
こんな感じで呼び出します

このeatメソッドを呼び出すと体重が1kg増えます

cat1の初期体重は5kgでしたので
体重が1kg増えた結果、体重は6kgになりました

次にcat2にも同様に餌を食べさせてみます

cat2は初期体重が3kgでしたので
餌を食べた結果、体重は4kgになりました

次にもう一度cat1に餌を食べさせてみます

cat1は先ほど体重が6kgでしたので
今回餌を食べた結果もう1キロ

体重が増えるので体重は7kgになりました

ここで注目してほしいのは
cat1とcat2は別の生き物だということです

cat1が餌を食べたからといって
cat2が太ることはありません

同様にcat2が餌を食べたからといって
cat1が太ることもありません

あくまで別々の歴史別々の人生を歩んでいるのです

このようにクラスを

別々に呼び出すということは

新しい猫が生まれて一つの歴史が始まることを意味します

ですのでクラスの中の

これらのメンバ変数はお互いに別々の歴史となります

cat1が餌を食べたからといって
cat2が太ることはありません

このようにクラスを呼び出すと一つの歴史が始まります

この一つの歴史のことをインスタンスと呼びます

インスタンスはクラスを呼び出したものです

cat1でひとつのインスタンス、
cat2もまた一つの別インスタンスです

ここまでの説明でクラスやインスタンスがよく分からないという方は

こちらの過去動画で詳しく解説していますので

そちらの動画を見てからもう一度

この動画のクラスの説明を
復習してみてください

インスタンスを作る際に呼び出されるメソッドのことを
プログラミングの世界ではコンストラクタと呼びます

pythonでは__init__()がコンストラクタになります

引数を受け取る必要のない場合は
コンストラクタは省略することもできます

変わることのない値を定数と言います

定数は大文字とアンダーバーで名前を書きます

この部分が定数になります

こんな感じで定数を宣言します

クラスの中から定数を参照するときは
このようにself.

で呼び出します

定数はクラスの外からも参照することができます

クラスの外から点数を参照するときは

クラス名の後に.を付けてから
このように呼び出します

これでクラスの外から定数を
参照することができます

てここにCatクラスとDogクラスがあります

Catクラスは猫を呼び出すクラスで
Dogクラスは犬を呼び出すクラスです

この二つのクラスの違いはcryメソッドで
ニャンと鳴くかワンと鳴くかだけの違いです

こういう時は共通しているコードを一箇所にまとめましょう

まずはAnimalクラスを作って共通している
コードをここにまとめます

そしてCatクラスとDogクラスの
クラス名の隣に(Animal)と書きます

これはどういう意味かというと

Animalクラスの機能を引き継いだまま
別のクラスを定義しますという意味になります

つまりCatクラスもこちらのDogクラスも
Animalクラスの機能は全て使えますので

先ほどのこちらのコードとこちらのコードは
全く同じ意味になります

このように別クラスの機能を引き継ぐ事を

クラスの継承と呼びます

継承を使うと共通しているコード一箇所に
まとめることができるので便利です

また継承元のAnimalクラスを親クラスと呼び、

機能を引き継いだ側のCatクラスやDogクラス側
のことを子クラスと呼びます

さらに継承は何段階でも行うことができます

ばCatク例えラスを継承した孫クラス

を作ることも可能です

継承を使うと親クラスの機能を引き継ぐということがわかりましたが

引き継いだ機能は子クラス側で
上書きをすることができます

例えばAnimalクラスで定義されている
eatメソッドは

餌を食べることに体重が1kg増える
というプログラムでした

ではCatクラスにもeatメソッドを追加して

体重が2kgずつ増えるように書き換えてみましょう

これで親クラスにもCatグラスにも

全く同じメソッドが存在しています。
この場合、

親クラス側のメソッドは無視されて
子クラス側のメソッドが実行されます

つまりメソッドは上書きすることができるのです

この上書きのことをプログラミングの世界では
オーバーライドと呼びます

オーバーライドしても親クラスには影響を与えません

ですのでDogクラスのeatメソッドを実行すると

体重が1キロ増えるというプログラムのままです

Facebooktwittermail

コメントを残す

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

CAPTCHA