高校 情報Ⅰ Pythonプログラミング入門【動画解説】高等学校 情報科 情報１

#高校 情報ⅠのPythonプログラミング入門講座（動画）

#目的（すべての生徒に平等な教育を！）
２０２２年から全国の高等学校で情報Ⅰの科目が必修化されます。
２０２５年から大学入学共通テストの入試科目になる可能性もあります。

現在、情報科の高校教員は不足している状態で
生徒の前に教えられる人が少ない＝地域（学校）により大きく格差が開いてしまう可能性があります。

大手予備校が当分野に進出することは目に見えていますが、
お金のある家庭はさらに学力向上し、大きな格差が生まれます。

これって不公平だと感じています。

全ての人に平等な教育をという信念で
私自身、資格の予備校講師経験（失業者向け教育）と
IT業界１５年の経験などを生かして、高校情報Ⅰのプログラミングを基礎を無料で
動画解説していきます。

その第一弾として、Pythonの基礎を８０分に詰め込みました。
はじめは文部科学省が出している教員研修用教材の内容から入ろうと思ったのですが
プログラミング未経験者にはあまりにも敷居が高いと感じたため
超入門講座を別に切り出しています。

これをやった後に教科書のPythonを見ればかなり理解が深まると思っています。

#情報Ⅰ動画教科書　総目次
https://toppakou.com/info1/


#YouTube動画解説
<p class="codepen" data-height="555" data-slug-hash="XWNvjNQ" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 0; padding: 0;">
  <span>See the Pen <a href="https://codepen.io/it_youtuber/pen/XWNvjNQ">
  XWNvjNQ</a> by IT系教育YouTuberがっき～のつぶやき（高校情報科・情報処理技術者試験対策の突破口ドットコム） (<a href="https://codepen.io/it_youtuber">@it_youtuber</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

https://youtu.be/peS2I-mBtoA

#上記だと音が出ない（？）ので、直接YouTubeの画面に飛んでください
https://www.youtube.com/watch?v=peS2I-mBtoA&list=PLhwb58Ij-QD4CDLzGfXvJkvjDgvWP_k6i

##■第１話 Pythonとは？インストール方法、文字・数字演算
https://note.com/toppakou/n/n08cd0b46723c?magazine_key=mf9571f6f9886

##■第２話　Python　変数入門
https://note.com/toppakou/n/nacaa95633285?magazine_key=mf9571f6f9886

##■第３話　ループ　繰り返し
https://note.com/toppakou/n/n7c21331ab719?magazine_key=mf9571f6f9886

##■第４話　リスト
https://note.com/toppakou/n/nd661fc4c943b?magazine_key=mf9571f6f9886

##■第５話　制御構文（IF　条件分岐）関係演算子　
https://note.com/toppakou/n/nc111f719239d?magazine_key=mf9571f6f9886

##■第６話　関数
https://note.com/toppakou/n/ndb8a955c7ed8?magazine_key=mf9571f6f9886

##■第７話　while繰り返し処理
https://note.com/toppakou/n/n42c993151db0?magazine_key=mf9571f6f9886

##■第８話　ライブラリ
https://note.com/toppakou/n/n172166e70c7f?magazine_key=mf9571f6f9886

##■第９話　　データ型
https://note.com/toppakou/n/n18bbcb6b88f7?magazine_key=mf9571f6f9886

#以下はメモなので無視してください

###■第１話 Pythonとは？インストール方法、文字・数字演算
ついに、情報の授業もプログラミングの章になったんだね。

ところで、Pythonってなに？
ボクシングで有名な人？

う～んそれは、マイク・タイソンのことだよ。
じゃあPythonについて詳しく説明するね。

画像3

今日の動画の題目だ
まずPythonとは何かについて説明する
そのあと実際にミライが持っているWindowsのパソコンにPythonが動く環境を作る
そして実際にプログラミングを行って、HelloWorldの文字を出力させてみる
そして　簡単な計算式のプログラミングを行うところまでやっていこう。

うわ～凄い盛りだくさんだね

画像4

最終的には、文部科学省が出している高校情報１の教科書の元ネタとなる
教員研修用教材の内容も使って、フローチャートも作成してシステム設計もしながらプログラミングもできるようになれるよ。

画像5


■■Pythonってなんだ？
Pythonっていうのは、プログラム言語のひとつなんだ。
プログラム言語ってなにかしっているかな？

それはわかるよ、例えば、ゲームとかスマートフォンアプリとかいろんなアプリケーションを動かしているものだよね。

うん、正しいね。

画像6


コンピュータの世界は二進数といって0と1の組み合わせでしか理解できないんだ。
でも、人間の手で0と１だけでコンピュータに命令を与えるのは難しいよね。
だから、プログラム言語という人間も理解できてコンピュータにも理解できる言語が使われるんだ。プログラムを実行するとき0と1に置き換えられて実際にアプリケーションが動くんだ。

プログラム言語は、色んな種類があるんだ　Pythonのほかに
JAVA、PHP、Ruby、C＃、C++、HTML　などなど

うわ～こんなにあったら何をおぼえていいかわからないよ。

そうだよね、システム業界にいる人は、複数言語扱える人が多いけど、
まずシステム構築する前段階で何の言語でプログラミングするかが決められ
そのスキルを持った人が集められるんだ。

今回、Pythonについて説明するけど、Pythonは今非常に人気があって、Pythonスキルをもった、エンジニアは引く手あまたなんだ。

へぇ～なんで人気なの？

AIってしってる。

あっ！人工知能のことだね。

そうなんだITの最先端を行く機械学習などのAIの分野で凄く優れている言語なんだ。


ライブラリといって、データ解析に必要な機能が既に沢山用意されていて、
実際に複雑な解析も、そのあらかじめ準備されたライブラリを使うことによって短時間でプログラミングを終わらせることができるんだ。

画像8

いまみんながこの動画を見ているYoutube やインスタグラムやFacebookなんかもPython
で作られているんだ。

画像9

Pythonの特徴について説明していくね
まず、文法がシンプルでわかりやすいってこと。

文法ってなに？

例えば英語で私はミライですといった場合に
I am Mirai という風に、決まりがあるだろ？
プログラム言語も同じようにプログラミングを行うときに、
決まりに沿った形で記述していかないとエラーになってしまうんだ。
Pythonはそのきまりが、JAVAなどの他のプログラム言語にかなりシンプルで習得までのじかんがあまりかからないというメリットがある。

画像10

ほかには、オープンソースなので無料で手に入るってことがある。
オープンソースは自由に入手できるソースコードで条件を守ればだれでも利用できるものなんだ。

へぇ～無料ってのは凄いね！

あとは、インターネット上で動くWebアプリの開発ができること。

画像11

あとは、オブジェクト指向型の言語なので仲間との共同開発が行いやすい点がある。
オブジェクト指向はちょっとややこしいからまた別動画で解説するね。

Pythonってなんで、パイソンっていう名前になったの？

画像12

Pythonの作者はオランダ出身の
グイド・ヴェンロッサムという人なんだ
イギリスの　空飛ぶモンティパイソン　というお笑い番組が大好きで、自作のプログラミング言語にこの名前を付けたといわれているんだ。

へぇ～お笑い番組から来ているなんて驚きだね！

画像13

ちなみに、Pythonで使われているこのロゴは何に見える？

蛇が二匹いるみたいだね。

そうなんだ！パイソン自体は　ニシキヘビっという意味だから
それにちなんでロゴも蛇になっているんだ。

じゃあ、次は実際にWindowsのパソコンにPythonをインストールしていこう。

画像14


■Windowsのパソコンにパイソンをインストールしてみよう
じゃあ、まずPython自体が動くアプリケーションを配布しているサイトからPythonをダウンロードしよう。


今回は、WebブラウザにグーグルChoromeを使うね。使うブラウザによって少し見え方は違う可能性があるけど基本的な動作は一緒だよ。
ウェブブラウザを開いてこのURL入れてみて。
この動画見てくれている人向けに、概要欄にも貼っておくね。

うゎ～英語だらけのページだ！

画像15

すこし下にスクロールしてみて、3.９.２とか数字にリンクが張られているね。
この数字はバージョンなんだ。
一般的にバージョンが上がるほど、機能が拡張されて、前バージョンであった不具合が解消されていたりする。
だから、今回は最新バージョンのWindowsで動くものをダウンロードしよう。
２０２１年３月現在の最新バージョンは
3.9.2だね
最新版のリンクをクリックしよう。

次にダウンロードページに来たけど、真ん中の方にあるFilesまでスクロールしよう。

色々あるけど、WindowsやMACやLinuxなど使用するOSでの違いでそれぞれにあったPythonが提供されているんだ。

画像16

Windows版だけど６４bitと32bitのものがあるね。

これはビット数で、インストールするWindowsが64ビットか32ビットかということを示しているんだ。
。

どうやって、調べればいいの。

Windows 10でビット数（32bitか64bit）を確認する方法｜Office Hack (office-hack.com)

まず左下にあるスタート】ボタンをクリックして、ギアアイコンの【設定】ボタンを押して
そしたら「Windowsの設定」が開かれるから、【システム】を選択するんだ。
左のナビゲーションの一番下にある【詳細情報】を選択すると、「システムの種類」にビット数が記載されているから64か32かを確認して対応している、Pythonをダウンロードしよう。

画像17

私のパソコンは64ビットだから
64ビット版をダウンロードするね。

ダウンロードが完了すると、ブラウザの下の方に表示されるからこれをクリックしよう

間違えて閉じてしまった場合はどうすればいいの？

ダウンロードの一次フォルダに存在するはずだから、そこからファイルをダブルクリックする方法でもいいよ。
WindowsキーをおしながらEを押すと、エクスプローラの画面が立ち上がるから
左側にあるダウンロードのフォルダを選ぼう

画像18


ファイルをダブルクリックすると、インストールの画面が表示される。

これも英語ばっかりでよくわからないね。

はじめの画面では、まずAdd　Python　３．９　to PATHにチェックをいれよう
こうすることで環境変数っていうのを自動で設定して、どこからでもPythonの実行ファイルを呼び出せるんだ。


そして　Install　Nowの部分をクリックするんだ。

画像19

暫くするとSetup was successful　とでるから、そのままCloseボタンを押そう。

これでインストールは完了だ。

じゃあ、実際にPythonがインストールされたかを確認していこう。

画像20

確認にはコマンドプロンプトで確認しよう。
左下にあるここに入力して検索にcmdといれてみて、

あっ！コマンドプロンプトって表示されたよ。

じゃあそれをクリックしてみよう。

黒い画面が立ち上がるからその中に
pytohon　–version と打ち込んでエンターキーを押してみよう

何か数字が表示されたね。

Pythonがインストールされていないと、エラー画面が表示されるんだけど　上手くインストールされているとこんな感じで、バージョンが表示されるんだ。

画像22

画像21

じゃあ、実際にプログラムを書いていこう。
プログラムを書くアプリケーションは色々あるけど、まずは、Windowsに標準搭載されているメモ帳を使ってみよう。

ここに入力して検索に　メモ帳と入れてみて。
出てきたアイコンをクリックしよう。

これから、Hello　Worldという文字を表示されるプログラムを書いていくよ。
ちなみにプログラム内で扱う文字データのことを「文字列」というんだ。


まずprint打って、丸かっこを打つ　その中にダブルクォーテーションを打ち込んで
Hello　Worldと打ち込んでみよう

あれ？ミライキーボードが止まっているけどどうしたの？

カッコやダブルクォーテーションっていったいどうやって打つのかがわからなくて・・

なるほど、まず丸カッコの左側はキーボードの８の上にあるやつだ
だからshiftキーをおしながら８のキーを押そう

そして丸カッコの右側はキーボードの９の上にあるやつだだから
シフトキーをおしながら、９のキーを押す

ダブルクォーテーションはキーボードの２上にあるやつだから
これもシフトキーをおしながら２のキーを押す

あっ！入力できた！
プリントってどういう意味なの？

カッコ内にある文字を表示しなさいっていう命令文なんだ
じゃあ、一度保存しよう。

保存するときは、普段のメモ帳ではファイル名の後にドットtxtという何のファイルかを意味する拡張子が付くんだけど、今回はPythonのプログラムコードだから、ファイルの拡張子も変更する必要がある。
Pythonの場合は、ドット py　と入れてあげよう。
今回はhello.py　というなまえで保存することにしよう。

保存できたよ～

保存したファイルのあるフォルダを開いてみて。

画像23

あれ？さっき ドットpy と入れたのに　helloしか表示されていないよ

Windowsの初期設定では拡張子は表示しないようになっている。
プログラム開発をするときは拡張子が表示されているほうが便利だから、拡張子を表示するモードに変更しておこう。


キーボードのウィンドウズマークを押しながらＥを押そう
そうしたらエクスプローラ画面型仕上がるから表示タブをクリックして
その中のファイル名拡張子にチェックを入れてみて。

あっ！ドットpyって表示された。

じゃあ、Pythonのプログラムを実行していこう。

画像24

さっきやったように、cmdでコマンドプロンプトを立ちあげよう。

まず、pythonと打って　半角スペースをあけて　その後に作成したPythonのファイルを指定してあげるんだ。
注意するのは、今のフォルダの位置はこの場合はCドライブのUsersフォルダだから
この場所にPythonファイルが無ければエラーになる。
その場所に移動してあげるか、フォルダ階層をすべて書く必要があるんだけど、簡単な方法がある。

さっき作った、Pythonのファイルの上で左クリックしたまま、コマンドプロンプトまでもってきて、そこでマウスを放して。

あっ！勝手にフォルダの階層とファイル名が表示された。

そうなんだ、今やったのをドラッグアンドドロップっていうんだ
良く使うテクニックだから覚えておいて。

じゃあ、そのままエンターキーを押して

画像25

あ～なんか変な英数文字が沢山出てきた。

これはエラーだね。文法通りに記載していないっていう意味だ。
ミライの作成したファイル見せて。

画像26

あっ！右側のダブルクォーテーションが無いね。

なるほど気付かなかった。

ちゃんとダブルクォーテーション入れて保存してもう一度実行してみよう。
同じコマンドを実行したい場合は、コマンドプロンプトの画面で↑矢印ボタンを押せば以前実行したコマンドが表示されるんだ。
さっき実行したコマンドが表示されたのを確認して、エンター押して。

あっ！今度はちゃんとHelloWorldと表示されたよ！

おめでとう！

ちなみに、ダブルクォーテーションではなくシングルコーテーションでも可能なんだ。
シングルクォーテーションはキーボードの７の上にあるやつだから、シフトキーを押しながら７の気を押すと出てくるよ。

じゃあ次は数字を扱っていこう。

画像27

さっきのhello.pyファイルの続きに
print(1+1)って書いてみて
数値や計算式を扱う場合はダブルクォーテーション無しで大丈夫だよ。

じゃあ保存して実行してみよう！

２って、計算した結果が表示されたね。

でもこれだと何が２か分からないよね
１＋１＝２とちゃんと表示したいよね

これもprintの中でカンマで区切ることで文字列と計算式を混在させることができるんだ。

print(“1+1=”,1+1)

左側のダブルクォーテーションで囲まれ場部分は文字列として扱われてそのまま表示されて、ダブルクォーテーションで囲まれていない右側は計算結果を表示する。
じゃあ実行してみよう
ちゃんと１＋１＝２と表示されたね

画像28

今は足し算だったけど
もちろん掛け算や割り算などの計算も可能なんだ。

このとき使う記号のことを演算子というよ

足し算はさっきやったようにプラス
引き算はマイナス
掛け算はかけるではなく　アスタリスクなんだこれは×がエックスと間違えやすいからアスタリスクを使って見間違いを防ぐようにしているんだ。

割り算はスラッシュ　昔は÷の記号がキーボードになかったから、その名残でスラッシュを使うんだ。分数を斜めにしている感じと思うと分かりやすいかもしれないね。

ところで、テレビとかでプログラミングしている人って　
カラフルな文字を扱っているイメージがあるけど、このメモ帳は白黒だね。
なんかカッコ悪いというか・・

画像30

画像29

こんなやつかな？

あっそれだ！かっこいいよね

色んなエディタがあるんだけど、これは
Visual Studio Code　といって、ワードとかエクセルでおなじみのマイクロソフトが無料で提供しているものなんだ。

え～無料なの？

このエディタは非常に便利で、IT企業でも多くの人が実際に使っているんだ。
さっきのprintで使った()やダブルクォーテーションでも片方を入れれば、勝手にもう片方も入れてくれるから、ミライがさっき片方なかったようなミスも自動で防いでくれるんだ。

概要欄にVisual Studio Codeのリンクを貼っておくから、次回からはこのコードエディタを使ってプログラミングしていこう。

じゃあ、今日のインプット学習ここまで！
習った内容を少し復習しよう。

次回からは、変数、繰り返し分、条件分岐などをやっていって、
実際の高校情報Ⅰの授業で扱われるプログラミング練習問題が解けるようにしていくよ。

やった～楽しみだね。

文法通りに記載しないと

print(“”)


Pythonとは？インストール法?HelloWorld表示【高校 情報科 情報Ⅰ　新学習指導要領 完全対応版 ３章】

Visual Studio Code - Code Editing. Redefined
https://code.visualstudio.com/


画像1

答え
画像31

※ダブルクォーテーションの間にスペースは文字種の関係でスペースがあるように見えています（スペース文字は無し）

###■第２話　Python　変数入門
前回はPythonのインストール、文字列表示、簡単な四則演算したから
今回は変数について学んでいこう。

変数って変な数のこと？

言葉からではわかりにくいから、
先に具体的なプログラミングを見ていこう。


問題！このプログラムを実行すると何が表示されると思う

画像3

--------------------------
name = "ミライ"
print(name)
---------------------------

１行目　name は　ミライと言っているだけだから特に処理には関係ないのかな
printはこの前　習ったやつだね。
ダブルクォーテーションで囲まれてないのが気になるけど
nameという文字列が表示されるかな

画像4

じゃあ実行してみよう。
ミライって表示されたね。　残念nameと表示されるのは不正解残念

う～ん、何でミライの文字が表示されるのかがイマイチ分からないんだけど。

画像5

これはね、変数っていうのを使っているんだ。
変数は数字や文字を入れる箱みたいなものなんだ。

今回のプログラムと照らし合わせながら見ていこう
まず１行目のname っというのが変数の名前で変数名なんだ。
nameという箱があって、その中にミライという文字列を入れているイメージなんだ。
この箱に値を入れる行為を代入というんだ。

そして２行目で、nameの箱の中身を表示させているんだ。


１行目と２行目はお互いに関係していることを確かめるために１行目を無効化していこう
一行目の一番初めに　シャープの半角文字を入れてみて。

画像6

このシャープってどういう意味なの？

これはコメントアウトという行為なんだ。
シャープ以降にある文字はプログラム実行時は無視される。
プログラムを無効化するときにも使うけど
こんな感じで、この行は何をしているかを日本語などプログラム知識が無い人向けに説明がきを入れるためにも使われるんだ。

実際、システム開発現場では一人ではなく大人数でプログラミングすることが多く、作った人が退職や他の現場に行くとかして、途中でいなくなることが多々ある。
このコメントがあるとそのプログラムが何を処理しているかが分かって、プログラム自体の解析もしやすくなるんだ。

なるほど！自分以外の人の為にもコメントは残しておくようにするよ。

あと、自分自身の為にもなるんだ、処理が複雑になるほど
プログラム自体複雑になる。
一度作り上げて、数か月間放置していると、浦島太郎状態で、
その処理が何をやっているのかが自分自身分からなくなることがある。
コメントをちゃんと残すのは自分自身の為でもあるんだ。

ちゃんとした開発プロジェクトの場合は、コーディング規約と言って　プログラムをどんなふうに書くべきかという決まりごとがある場合が多い。
コメントの記載方法など厳密に決められていることも多いんだ。

あと、Pythonとしての共通的なコーディング規約にPEP８ってのがある。
例えば、さっき変数に値を代入したプログラムの　イコールとの間に半角スペースがあるよね。
この半角スペースは、なくてもプログラム自体は動くんだけど。
半角スペースがあると見やすくなるし、PEP８にもちゃんと定義されているんだ。
PEP８の日本語訳のホームページを概要欄に貼っておくから興味があったら見てみて。

はじめに — pep8-ja 1.0 ドキュメント (pep8-ja.readthedocs.io)
https://pep8-ja.readthedocs.io/ja/latest/

画像7

じゃあ、１行目をコメントアウトしたプログラムを実行してみよう。

あ～エラーになった。どうして？

これは、nameという変数がどこにも定義されていないから、表示できませんという意味なんだ。
仮に変数ではなく、nameという文字列として扱い場合は、2行目のnameを
ダブルクォーテーションで囲むとnameという文字列が表示される。
これは前回やった内容だね。

今回は、nameという変数名を付けたけど、この名前にも決まりがあるんだ。



画像8

使える文字は、半角の英数字とアンダースコアだけ

画像10


name_1　の様に組み合わせることも可能。
ただ、数字が先頭にくるものや、数字単独ではエラーになるんだ。
ちょっと試してみよう
変数名を1nameと打ちかえるね。これを実行してみよう。
エラーになったね。



画像11

他には、小文字と大文字はべつの変数名として扱われるんだ。
大文字のNAMEを定義してじっこうしてみよう。
大文字のNAMEには　がっきー　といれるね
実行してみよう。

画像12

あっ！ちゃんと別々の表示がされたね。



あと、英数文字でも変数として使えない文字列もある
例えば and False True などプログラム自体で用いられるものが該当するんだけど
これを予約語というんだ。

画像13

こんなにあったら覚えられないよ。

予約語を使うと、プログラム中で予約語ですとエラーになるから覚える必要はないよ。
ためしandという変数名でやってみよう。
ちゃんとエラーになったね。

さっきは、nameに　ミライという文字列を使ったけど、今度は数字を扱っていこう。

画像14

priceという変数を用意してその中に　100を代入する。
数字の場合は、ダブルクォーテーションは不要だよ。

そして、taxという変数を用意してその中に0.１を入れてみよう。

消費税を求めるには　price×tax だから
printの中にprice アスタリスク　tax　といれて、保存してプログラムを実行してみよう。

１０って消費税がちゃんと表示されたね。

画像15

じゃあ、変数を使った文字列の結合もしていこう
name1に　ミライ
name2に　がっきー
name3に　やまだ
って代入しよう。

print に　それぞれの変数をカンマで区切って入れてみよう。
ちなみにカンマの後に半角スペース入れているけど、これも見やすくするためのコーディング規約なんだ。
実行してみよう。
文字が連続して出たね。

画像16

文字と文字との間に、スペースがあるけどこれってかえられないの

できるよ。
printの最後に　セパレートの略のsep　と入れてイコール　の後にシングルコーテーションの中にスラッシュを入れてみよう。

あっ！スラッシュで区切られたね

画像19

他にも改行を入れたい場合は、\n って入れてみて　\nは改行を意味するんだ

あっ！改行されたね！便利だね。



printに入れる前に文字列を結合する方法もあるんだ。
足し算で使った　＋　を　文字列に使うんだ
name1 + name2 + name3 を
zenbuという変数に入れてみよう

zenbu = name1 + name2 + name3 
print(zenbu)
ちゃんと結合されたね。

画像19


同じようにとちゅうで改行入れたい場合は\マークエヌを途中に入れよう
変数ではなく文字列だからダブルクォーテーションまたはシングルコーテーションで囲むことを忘れないように

###■第３話　ループ　繰り返し
先にこのプログラムを実行してみよう。

０から４までが表示されたね。
処理の流れを説明するね。

まず for は繰り返しなさいっていう意味なんだ。
その次のiはこの前説明した変数なんだ。もちろんi以外でも大丈夫だけど、一般的にi,j,kという風にiからのアルファベットが使われる。

in　から右は変数に入れる値を定義しているんだ。
rangeは値を返却する関数と言われるもの、その中に５ってあるのは終了値を意味して

０から５未満の整数　つまり０から４までを返却するんだ。

ちょっと実行してみよう

０から４まで表示されたね
処理の流れについて説明するね。

画像11

まずrangeは０から４までを返却する

そしてそれが順番に変数 iに格納される
そして次の　print(i)が実行されて　０が表示される

これが５未満の４になるまで繰り返されるんだ

画像11

初期値を０以外にすることもできる

for i in range(20,31):
   print(i)
これはrange内の左側の数値が初期値で、右側は終了値さっきと同じで
31未満だからこの場合は20から30までが表示される。

###■第４話　リスト
Pythonのリストってなんだ？

[要素０,要素１,要素2・・・]

リストは複数のデータを格納できるデータ型のことなんだ
この前、変数について説明したときに文字や数字を入れる箱って説明したよね。
その箱に入れられるデータは、名前とか数字とか一種類だけだったよね
リストは、その箱を複数入れられるロッカーみたいなものなんだ。

この一つ一つの入れる箱のことを「要素」っていうんだ。

そのロッカーから特定のデータを取り出すときってどうすればいいの？

いい質問だね。
それぞれの箱の住所みたいなものがあるんだ。
それをインデックスという。

箱の一番目から　インデックス番号０番が割り当てられているんだ。
箱は１つ、２つ　と数えるけど、このインデックスというのは０番から始まるから
プログラムを組むときは注意が必要だ。

インデックス番号を求めたいときは、
欲しい要素の順番　マイナス１と考えるといいと思うよ。

実際にプログラムを書いていこう
前提として、１番目の箱にミライ、２番目の箱にがっきー、３番目の箱に山田という文字が入っているとしよう。

リストで書く時は　こんな風に書くんだ。
[]角括弧の中に入れたい要素をカンマ区切りで入れるんだ。
文字の場合はダブルクォーテーションで囲むのは以前説明した通りだよ。

そしてそれを変数　name_list に入れてあげる

じゃあ、これを順番に取り出すプログラムを書いてみよう。

変数の後に角カッコを付けて　その中に取り出したいインデックス番号を入れる
例えば　ミライの要素を取り出したい場合は　0 を入れる

要素の中を変更することもできるよ。

例えば　インデックス1番のがっきーを　がきに変更しよう
変数名 角カッコの中に変更したいインデックス番号を指定して　イコールで変更したい値を代入すれば値が変わる。

実行してみよう

がっきーが　がき　にかわったね。

要素が何個あるかを教えてくれるlenという関数があるんだ

長さlength（レングス）の略だね

lenの中にname_listの変数を入れてみよう
このlenは要素数の数値を返すからprintの中にいれてみて出力結果を確認しよう

ちゃんと３って表示されたね。

このリストは以前説明した繰り返しのfor文で併用されることがよくある。
リストの中にある要素数分for文をくるくる回すイメージなんだ。

これは、name_listの要素を一つ一つ取り出して　nameという変数にいれているんだ。

for name in name_list:
    print(name)

さらにlistは二次元であらわすことも可能なんだ

###■第５話　制御構文（IF　条件分岐）関係演算子　
今日のPython講座は条件分岐と関係演算子の基本について学んでいこう

ところで今度の情報のテストで８０点以上とったら、お小遣い５００円アップしてくれる。

今度のテスト範囲は、条件分岐だね。
丁度今回話す内容のネタとして使えそうだから
テストの点数とお小遣いアップの関係の
プログラムを組んでいこう

その前に関係演算子について学んでいこう。

２は１より大きい？

もちろんだよ。

じゃあ、逆に２は１より小さい？

いや違うよ。

そうだね。
今話したように、二つの関係が正しいか正しくないかを判断するのに使う演算子を
関係演算子というんだ。

具体的な例を見ていくね
２という数字は１より大きい　というのは
２＞１
と書くんだ。

あっ！中学でも習ったやつだね。

ちょっとこれだけでPythonのプログラムを実行してみよう。

Trueと表示されたね。日本語で真といって、あっていることを意味する。

逆に１と２をひっくり返してみよう
１＞２
１という数字は２より大きい　というのでプログラムを実行しよう。

Falseと表示されたね。　これは日本語で偽と言って、正しくないことを意味する。

この関係演算子はいくつも種類があるから確認していこう。

画像2

じゃあさっきのテストの得点とお小遣いを例に
今の関係演算子と制御構文を使ってプログラミングをしていこう。

ん？制御構文ってなに。

英語でIFってどういう意味

もし～ならばっていうことだよね

そうなんだ、制御構文はIF文ともいわれ、
得点が８０点以上ならば、小遣いをあっぷする。
それ以外なら、お小遣いをダウンする等のプログラミングができるんだ。

じゃあ、テストの点数が９０点だったとして
プログラムをしていこう

はじめに、変数　tokutenに　90を代入する。

そして
もし、得点が80点以上だったらという　制御構文を書いていこう
もし得点が８０点以上ならばでコロンを入れる
if tokuten >= 80:

その次の行に　満たす場合の処理を記載する
この時for文の時と一緒で、ifのtrueの条件に当てはまるグループとして
半角スペース４文字あけるか、タブキー（※）を押して、インデントをすること

※Pythonコーディング規約PEP８では、半角スペース４文字が推奨されています。

　print(“お小遣い５００円アップ。”)といれよう
それ以外だったら、お小遣いアップ無しと出力するようにするには。
else: を記載する　文字の位置はifと同じ位置であること
そして次の行に、インデントをして
print(“お小遣いアップ無し”)
といれよう。

じゃあ実行してみよう。
得点に90をいれたから、80以上の条件を満たして
お小遣い５００円アップが表示されたね。

じゃあ、次は得点変数を７０に変更しよう
実行してみよう
今回はelseに当てはまって、
お小遣いアップ無しって表示されたね。

他にも条件を加えたい場合は
elif（エルイフ）を使うんだ。

じゃあ点数が６０点以上だったらという条件を加えよう
elif tokuten >= 60:
と記載して、次の行にインデントして
print(“お小遣い300円アップ”)と入れてみよう。

80点の場合も当てはまる条件だけど
if文は上から順番に判定していき、当てはまった時点で他のelseには入らないんだ。
だから60点以上80点未満でこの条件に当てはまることになる。

だから変数　得点を70に変更して実行してみよう。
ちゃんとお小遣い３００円アップって表示されたね。

elseは上に記載されたいずれの条件にも当てはまらないときに記載する。

この関係演算子を使えば色んなプログラミングが出来そうだね。

それでは、今日の復習問題をといていこう

###■第６話　関数
今日は、Pythonの関数について、学んでいこう。

これまで、HelloWorldの表示から始まって、比較的短いプログラムを色々学んできたよね

実際のシステム開発現場で作成されるプログラムはもっと処理が複雑で長いものが多いんだ。
同じ処理の繰り返しなどプログラムがぐちゃぐちゃで他人が理解しにくいプログラムを
スパゲティプログラムとか言ったりするんだ。

スパゲティってたしかに麺がぐちゃぐちゃだよね。

スパゲティを防ぐ方法の一つに関数っていうものがある。
関数は　とある処理を行う命令のまとまりを　ブロックに書いてまとめたものなんだ

いままで使ってきたprint()という画面に表示するプログラムも、カッコ内にある文言を表示させる処理を纏めた関数なんだ。

この関数は自分自身で定義することもできる
たとえば、こんなプログラムがあったとしよう
print(“おはよう”)
　print(“こんにちは”)
print(“こんばんは”)
print(“おはよう”)
　print(“こんにちは”)
print(“こんばんは”)
print(“おはよう”)
　print(“こんにちは”)
print(“こんばんは”)

よく見ると　おはよう、こんにちは、こんばんはを３回繰り返しているだけだね。

ここで関数の出番だ、この挨拶の共通部分を切り出して別に定義しよう

関数　あいさつ　を定義してその中に　
おはよう、こんにちは、こんばんは部分を切り出して記載する。

関数は def の後に半角スペースで関数名を記載する。
その後に丸カッコをつけて、その中に引数という渡したい値を定義して最後にコロンを付けるんだ。
　def 関数名(引数):


今回は特に渡す値が無いから引数無しでやっていこう。
関数名は挨拶とするね。
def aisatsu():
print(“おはよう”)
　print(“こんにちは”)
print(“こんばんは”)
と定義する。

これを呼び出す場合は
　aisatsu()と記述すれば呼び出せる

一度実行してみよう

こんどは3回繰り返すためにFOR文の中にいれていこう
for i in range(3):
aisatsu()

実行してみよう。
ちゃんと３回繰り返されたね。

複雑な処理も、まとまった単位で切り出せばプログラムが見やすくなるね。


じゃあ、引数を渡すパターンで考えてみよう

商品名と金額を渡すと
商品名の消費税は◎◎円です。と表示するプログラムにしていこう

まずは関数部分
#関数 ：keisan 引数 商品名と値段　
def keisan(syouhin_name, price):
tax = 0.08
print(syouhin_name, "の消費税は", price*tax, "です。")

keisan("まんじゅう",100)


いまは、関数内で完結したけど　
関数から値を受け取ることも可能なんだ。

戻したい値のところでreturnを使うんだ。
この戻ってくる値を戻り値っていう



###■第７話　while繰り返し処理
今日は繰り返し処理のwhile文についてやっていこう

繰り返しは以前ＦＯＲ文をやったけど、
同じ繰り返しでも少し違うんだ。

例えばFORの場合は、ある特定の値になるまで繰り返しだったよね。
たとえば以前説明したこれは
レンジが5だから5未満になるまで０から４まで５回繰り返し

じゃあ、while分について見ていこう
while分はある条件に当てはまっている間ずっと繰り返しするっという繰り返し処理なんだ

while づづけるための条件:
繰り返し処理


5からカウントダウンして0でループを抜ける処理を考えていこう。

time = 5

while time > 0: #タイムが0より大きい間続ける
   print(time)
   time -= 1 #timeの値から１マイナスしたものをtimeに入れなおす※time = time - 1 と同じ
print("おわり")
ここで注意するのは　timeをマイナスする処理が無いと
永久にループから抜けないということだ。

あと、　time -= 1　 は
time = time - 1 　
の処理と同じでtimeの値から１マイナスしたものをtimeに入れなおすんだ。

実行してみよう
５から１までが出力された後に　おわりってでたね

こんどは、ループの途中である条件に当てはまった場合
ループを抜けるbreakってのを追加していこう


timeが３になったら抜けるようにしていこう
print timeのしたに
if time　ダブルイコール　3コロン　とIF文を記載する
そして、インデントをしてbraekと書いてあげよう

実行してみよう。
５から３まで出力されたからループを途中で抜けたことがわかるね。

###■第８話　ライブラリ
今日はPythonのライブラリについてやっていこう

ライブラリは　いろんな便利な機能、この前説明した便利な関数などが纏まっている辞書みたいなもので、そのライブラリを呼び出すことでその便利な機能が使えるんだ。

Pythonが人気の理由にはAI　人工知能開発に必要なライブラリが充実していることもあるんだ。

パッケージとかモジュールとか言ったりするんだけど
他のプログラム言語で、一般的にライブラリっていうことが多いから、
今回はライブラリという名前で説明するね。

ライブラリは大きく標準ライブラリと外部ライブラリの２種類があるんだ。

標準ライブラリはPythonをインストールした時点で、勝手に入っているライブラリなんだ。

先に標準ライブラリについて説明するね。
色んな種類があるんだけど
まずは、数学関連のmathという　ライブラリを使っていこう

まず、ライブラリをつかいますよ・読み込んでくださいという宣言をする。
import のあとにライブラリ名を記載する。

import math　と記載しよう。
これで、ライブラリの読み込みは出来た。
じゃあ実際に読み込んだライブラリを使っていこう
例えば円周率を出力しよう
math.pi と記述して、printで出力しよう。

そうすると円周率が出力される

ライブラリにどういう機能があるかは、インターネットで公開されているから
参考に概要欄にリンクを貼っておくね。
math --- 数学関数 — Python 3.9.2 ドキュメント
https://docs.python.org/ja/3/library/math.html

他にもよく使うものを紹介するね。
randomライブラリをインポートしよう。
import random

リスト　omikuzi の中に　大吉　中吉　凶　といれよう
omikuzi = [“大吉”,”中吉”,”凶”]
random.choice(omikuzi)

これは、randomライブラリの中のchoiceという関数にomikuziのリストを渡しているんだ。
これは渡されたリストの中の要素１つをランダムに返す。
だからprintの中に入れて出力結果を確認しよう。
ランダムになることを確認するために

for文で１０回繰り返すね

実行してみよう。
ランダムに出力されたね。
実行するたびに値も変わってくる

つぎはDateTimeという日付を扱う標準ライブラリだ。
DateTimeのライブラリの中にはさらに機能のグループがあるんだ
from datetime import date
と記載しよう。
直訳すると　datetimeからdateをインポートするってなるけど。
これはdatetimeのライブラリの中にあるdateという名前の機能の集まりを呼び出しているんだ。

じゃあ、インポートしたものをつかって今日の日付を表示しよう
date.today()
これは機能の集まりであるdateの中にある
todayという日付を返却する関数を呼び出しているんだ。
返却値を確認するために、printで出力しよう
実行してみよう
日付が出力されたね。

じゃあ、今度は外部ライブラリについて簡単に説明していくね。
標準ライブラリとは違って、Pythonインストール時には入っていないライブラリだから必要に応じてインストールする必要がある。

色んな種類があるけど、グラフとかを出力する機能をもった
matplotlibをインストールしていこう

windows パソコンにインストールする場合はpipコマンドを使う
コマンドプロンプトの画面で
py -m pip install matplotlib
ってうちこもう

インストールには数分時間かかるから早送りするね。
これでインストールは完了したけど、僕の環境では、最後にpipコマンドのバージョンが古いから最新化しての警告がでているから
指示に従って最新化するね。

サンプルとして、文部科学省が提供している
高等学校情報１　教員研修用教材のPythonプログラムを使用するね。
まだプログラムの意味は分からなくていいけど、
今回重要なところは、
import matplotlib.pyplot as plt # グラフプロットの呼び出し
の部分
さっきインストールした　matplotlibライブラリのpyplotっていう機能をつかうよって　インポートしている。
as plt は　プログラム内でpltという名前で使うように別名を定義しているんだ。

実行してみよう。
ちゃんとグラフが表示されたね

このプログラムは、概要欄にあるnoteの纏めページに記載しておくから
自分の環境でもためしてみてね。

じゃあ、復習問題を解いて行こう。

復習問題

###■第９話　　データ型

データ型は、変数に入れるデータの種類のことなんだ。

代表的なものに大きく
数値型、文字列型、ブール型、リスト型等がある。


まずは数値型について。
１００とか12とか整数の型であらわすものを、INT型っていう。
0.08とか小数点まで使って表す型を、Float型っていうんだ

次に文字列型は“おはよう”などの文字列であらわすものを
String型という。

次に、ブール型は
以前、比較演算子やったときに
３　＞　２　などを正しいか、正しくないかを判定するときに
True、Falseであらわしたよね。
その真か偽かを表す型なんだ。
TrueかFalseのブール型はBoolean型ともいう。

このまえおみくじで大吉、中吉、凶っていうのをリストに入れたよね。
これはリスト型っていう

画像3


変数にデータを入れるとき
プログラム言語によっては、この箱には数値が入りますよって宣言するものもあるんだ。
Pythonの場合は、自動的にデータ型を判断してくれるんだ。

Pythonのように、変数の型を宣言しなくても自動的に判断してくれるプログラム言語を　動的型付け言語っていうんだ

一方、明示的に変数の型を宣言する必要があるプログラム言語を
静的型付け言語

pythonのプログラムで、渡された値がどんな型かを取得するtypeっていう関数がある

実際にプログラムを書いてみていこう

#数値型
atai_1 = 80
atai_2 = 0.08

#文字列型
atai_3 = "おはよう"

#ブール型
atai_4 = (3 > 2) #True
atai_5 = (2 > 3) #False

#リスト型
atai_6 = ["大","中","小"]

print(atai_1, type(atai_1))
print(atai_2, type(atai_2))
print(atai_3, type(atai_3))
print(atai_4, type(atai_4))
print(atai_5, type(atai_5))
print(atai_6, type(atai_6))
画像4

まえに消費税金額計算したときに
１００×０．０８をすると８．０と表示されたよね

zeikin = 100*0.08

print(zeikin)
print(int(zeikin))
これは小数点以下があるからFloat型だけど、
場合によっては小数点以下が不要な場合がある。
これを整数つまりINT型に変換するには
INT　かっこの中に　変換したい値を入れたらいいんだ
実行してみよう。
さっきまで８.０だったのが８と整数値に変わったね。
この型変換のことをキャストと言ったりもする。

さっき、Pythonでは変数の型を宣言しなくても自動的に判断してくれるって言ったけど
データ型について学ばなくていいっていうわけではない。

import math
num = math.sqrt(4) #平方根 (ルート)　引数に4
print (num)
例えばこれはmathライブラリをインポートしてルート４を計算して答えをnumに入れている。

画像7


実行するとちゃんと２が出力されるね。

画像8


ただ、ルートの中に文字列を入れたらどうだろう。実行してみよう。

画像9


何かエラーになったね
strではだめnumber にしてというエラーだけど、さっきのstring型について理解していないとエラーの意味自体が分からないので、問題解決に時間がかかる。
さっき説明した代表的な型は良く使われるからしっかり理解しておこう。

https://www.youtube.com/channel/UC_0LOFMRg60xDBfkzMAmkfA