見出し画像

ラズベリーパイ&Python超入門! インスタントでも本格風味の初心者講座やっちゃいます!

※有料設定ですがほぼ無料で読めます※

はじめに

突然ですが、RaspberryPi 400ってやつをゲットしたのです。

これ、何がいいって、いろんな難しいこと考えないですぐにパソコンとしてつかえることです。まあもちろんパソコンですからいろんなことに使えるわけですが、とにかく、設定だのなんだのいろいろ悩まないでよいので、まず動かしてみたい初心者向けにもぴったり。
もちろん、普通のRaspberryPiでも同じことはできますけどねw(キーボードは別に用意しないといけませんけどw)
今回、せっかく初心者用にぴったしマシンをゲットしたので記念にそれで初心者向け講座をやってみようと思ってしまった次第。

とりあえず、RaspberryPiにOSを入れられた状態ができていて、ディスプレイ(HDMIのテレビでOK)とマウスがついていて、ネットにつながっている状態ができている(ここら辺参照)ものとして、どんな初心者でも楽勝のPythonインスタント入門を書いてみようと思います。

※あくまで入門。つまり門に入るまで、です。そこから先は他の参考書を探すとかぐぐる先生に聞いて調べるとかしましょうー。とりあえず好奇心を持ってもらって、探求心に火をつけ(られたらいいなー)ってところまでをちょーインスタントに超高速でやってみます。

※ホゴシャの皆さまへ
2021年1月15日現在の標準的なバージョン(RaspberryPi OS(32-bit) Released 2021-01-11)をインストールしているとゆー前提ですすめます。(ここら辺でバージョン違いとかいろいろでてくると面倒なことなるのですよねー、ともあれ今回は面倒なことを一切排除して簡単に突っ走るという方針で駆け抜けてみようと思います。初めてパソコンをお子様に与えて、さァこの記事を見てこのたうりやつてご覧なさひなんていうお父様お母さまは、なるべく↑の環境に合わせてインストールしたラズパイを与えてあげるようにしてください)
あくまで初心者向けなのであえて環境を統一して書いていますが、他のRaspberryPiはもちろん、WindowsやMac等でもPythonをインストールしてあれば同じことができる、ハズです。

早速Pythonしてみる

まず、RaspberryPiを立ち上げて、デスクトップ的な画面にします。たいていは左上にラズベリーなアイコンがあるのでそこを選んでクリックすると、メニューがでてきます。(Windowsとかのメニューと似ています)

画像1

そこから、プログラミングー>Thonny Python IDE を選びます。

画像2

すると、こんなエディタが現れる筈です。

画像3

Hello World

立ち上がった画面の下のほうにある Shell という枠部分、>>>と書かれているところにコマンドを入れると、そのままそのコマンドを実行してくれます。

画像4

ためしに、伝統的な例をやってみましょう。

print('Hello World')

と入力して、Enter(改行/リターン)キーを押します。

画像5

どん。でました☆

printの後のカッコ+' 'の中の文字がそのまま出ましたね。

以上! 入門おわり! 

なんていうと怒られそうなのでちょっと解説しておくと、この伝統的なヤツはたいていのプログラム言語の最初にやる歴史的な儀式のようなものです。
普通はこれを出すまでにstdio.hをincludeしてぇ、とか、public classを定義してぇーとかいう話が出てきて面倒この上ないのですが、我らがPythonはそういうところを全部飛ばして何も考えずに命令をいきなり入れられるわけです。入門者にとっても優しくて、それなりに高機能。最近ではAIやら機械学習やらにも強いとゆー実はスゴイヤツ、それがPythonさんなわけです。

じぶんでやってみよう!
こんなかんじで使い方を学んだら、教科書どおりじゃなくていろいろ試してみるのもコンピュータを学ぶ良い方法です。単に 'Hello World'だけじゃなくていろんな言葉に変えてやってみましょう!(なんてゆーのも良く教科書に書いてある文言ですけどネw)

次、計算

printでHello Worldを出すことはできました。でも、これだけじゃ面白くともなんともないですね。(普通は、↑に書いたようにこれをやるまでにもいろいろ壁があったりしてそれなりに達成感があるので、「すごい!初めてのプログラムが動きました!」なんて言って成功体験を与えるのがこの手の入門書の定番なのですが、いまどきの子はこの程度じゃ感動しませんよねw)

なので、せっかく計算機のおばけ👻を使っているのですから、なんか計算させましょう。

さっきのShellの>>>のところに

print(1+1)

と入れてEnterやってみます。今回はカッコの中に' 'が入っていない事に注意。1+1だけが入っています。

画像6

どん、出ましたね。1+1を計算した答えがでてます。

ほほぅ。

じぶんでやってみよう!(しつこいw)
ま、ここは数字を変えて他の計算もしてみよーとかいうのが教科書に良くある手。いろんな計算をご自由にどうぞー。
ちなみに、四則演算の記号は、
+(プラス)とー(マイナス)は普通の算数そのままですが、
×(かける) ⇒ * (アスタリスク)
÷(割る)⇒ / (スラッシュ)

になっているので注意です。

せっかくなので、今回は好奇心をちょっとつかっていきなり変なことをしてみましょう

さっきのHello Worldは、カッコのなかにさらに ' ' が入ってましたね。では、

print('1+1')

としたらどうなるでしょう?

疑問を感じたらすぐ試せるのもPythonのよいところ。早速やってみます。

画像7

おや、今度は計算しないでそのま 1+1 という文字が出てきました。

この文字というのがポイント。正確には文字の並び列なので文字列といいます。どうやら、カッコの中でさらに' 'でくくると、計算をしないでそのまま文字列をprintするようですね。

以下、調子がつかめたと思うので「じぶんでやってみよう!」コーナーはお休みにしてどんどん進みます。気になったら気になったところで好きなようにいじくりまわして実験してみましょー☆

変数

この次に覚えておいた方がいいのが変数というやつですが、そろそろ教科書もどきは飽きてると思うのですっ飛ばします(おぃ)w

今覚えといたほうがいい基本はこれだけ

a = 1

aって変数に1という数を入れますよ。ってことです。

でもって、変数は入れた数として扱えるので

画像8

こんな風に使えます。

もちろん、変数の名前(変数名)は a だけじゃなくて英数字だったらいろんな文字が使えます。長い変数名でもOK。(ただし、数字を頭に置いたり、漢字の名前はやめておきましょう(できる言語もあるけど、使わない方が無難です))

長い変数名の例

画像9

こんな風にもできます。

※あ、今まで内緒にしていましたが、実は print( )は省略できちゃいます。いきなり 1+1とか a+2 とかだけ入れてもちゃんと答え出してくれるので、やってみてね。

変数には型とかいろいろあるんですが、今は説明面倒だし混乱するとおもうので、今後使うときに覚えてください。

それより、こんなつまらないお勉強MODEではなく、これからは、もうちょっと面白い高度なことをやってみようと思います。

今度こそプログラミング

今までは単にコマンドをその場で実行していただけですが、今度はしっかりプログラムを作ってみましょう。これまたふつーの入門書でやるようなことはすっ飛ばして、面白げなことをやってみようと思います。

今までウィンドウの下側の小さい枠をつかっていましたが、今度は上の方の大きなところをつかいます。

画像10

今は <untitled>って書かれてるところですね。

その中に、おもむろに

from turtle import *
shape('turtle')

forward(100)

と書き入れましょう。

画像11

こんなかんじ。

なにやら知らない言葉がいろいろ出てきています。最初は分からなくていいので、これだけ書いたら緑の三角いアイコン

画像12

コレをクリックしてください。

すると、Save as というウィンドウがでてきます。

画像13

作ったプログラムをセーブするから名前つけてね。ってことですね。

ここでは格好つけて MyFirstPython とか名前つけてますが、別に test でも hogehoge でもなんでもよいです。自動的に後ろに .py という拡張子が付いて、その名前で保存され、その後作ったプログラムが実行されるはずです。

実行結果

画像14

なんか出ました!

別の四角いウィンドウが現れ、なにか虫みたいなのがにょろっと出てきました!

虫というと失礼ですね、これはこれで、コンピュータ学習界では伝説ともいえる、 とても由緒正しい亀さんマークなのです。(詳しくはまたいつか書くかも? 興味がある方はシーモア・パパードさんとかLOGO・タートルグラフィックで検索してみましょー)

さて、では作ったプログラムを解説してみます。

まあ、わずか3行なので簡単簡単。

まず最初の

from turtle import *

は、このプログラムはタートルグラフィックを使いますよというオマジナイです。

そして、

shape('turtle')

は、アイコンの姿を亀さんマークにしてね。ということ。(入れないと矢印マークになってて味気ないので入れています。無味乾燥の効率大好きレプリカントな人はこの行わざわざ入れなくてもよいです)

最後に、

forward(100)

これは文字通り、100歩(前に)ススメ! ということ。

画像15

画面(右側の四角いところ)に現れた亀さんが、命令どおり100歩すすみました。

タートルグラフィックではデフォルト状態では亀さんのあるいた軌跡が線になってのこります。この亀さんをいろいろ歩かせて、絵をえがいちゃおうというのがタートルグラフィックのだいご味なのです。

さっそくプログラム改造

まっすぐしか歩けないのではまだHello World的というか直線番長でツマリマセンね。亀さんにもコーナーリングを教えてあげましょう。これも単純、右なら right() 左なら left()で、カッコの中に曲がる角度を入れます。

right(90)
left(90)

こんなかんじ。※↑をそのまま実行すると、右向いて左向いて元に戻ってしまうので、あんまり意味ありませんw

とりあえず、右に90度曲がるのを4回繰り返して、四角(正方形)を描いてみましょう。

画像16

こんなかんじ。実行すると

画像17

亀さんが言われた通り四角四面に歩いてくれます。
命令通りちょこちょこあるいてけっこうかわいいです☆

これで数字を書き換えたりして、いろんな大きさの四角や、角度を変えて四角以外の図形を描いたり、自由に遊んでみましょう☆

でも、もうちょっとプログラムらしくしてみるのもいいかも?

繰り返し

とゆーわけで、さっそく登場するのが繰り返し文というやつ。今回は for文を使います。

さっきのプログラムには、

forward(100)
right(90)

という行が4回でてきています。

4回も同じ行を打ち込むのははっきり言って苦痛です。(コピペすればいいんだけどねw)

こんな風に書き換えてみましょう。

画像18

4つ繰り返していたやつが

for i in range(4):
   forward(100)
   right(90)

にまとまっています。

実行結果は先ほどどおり、ちゃんと正方形を亀さん描いてくれますヨ
画像20

この

for i in range(4):

と言うのは、4回このブロックを繰り返してね。という意味です。

Pythonの構文でのブロックというのは、

画像20

for i in range(4):

の後、スペースやタブで一段下がっている文の事をいいます。専門用語(?)でインデントといいます。他の、CとかJavaとかいったプログラミング言語では{から}までとかいうのがブロックなんですが、Pythonでは、これをインデントで行うのです。

頭の文の最後が : (コロン)になっていて、その先がインデントされていれば、その:のある文のブロックである。というふうに覚えておけばダイジョブです。

画像21

ちなみに、このブロックの中にブロックを入れたりもモチロンできます。(インデントの数で区分けします)

※for文は奥が深いので、よりつっこんだ使い方は各自調べてください。ここでは四角形ですが、うまく改造したら六角形とか八角形とか作れちゃいますよー☆

もっと格好よくしよう!(関数)

さっそく、ブロック中のブロックを使えるようにしてみます。

先ほどのfor文のブロックを関数化してみちゃいます。関数が使えるようになると、もう立派なプログラマーってかんじ(?)です。アレですよ。流行りの関数型プログラミングってやつですよ。よくわかんなくてもいいので、まあ、やってみましょうw

画像22

こんなかんじ。

実行結果は今までとおんなじ、

画像23

正方形なのですが、なんだか高度になってきました。

def square():

というブロックが新たに作られて、その中にfor…のブロックが入ってますね。

(このエディタは、まとめて選択して、タブキーを押すだけでインデント増やせるので書き換えの時などに便利です)

そして、最後の行で

square()

というのがまた出てきています。(こっちには:(コロン)が付いていません)

Pythonでは、def というのは、この名前の関数をつくるよ。内容はこの下のブロックにはいっているよ。という意味です。ブロックは、インデントされている部分、ですね。(さらに中にfor文のブロックが入っている)

画像24

最後にある square() という行は、square()関数を呼び出すよ。という意味です。

ちなみに、プログラム言語はたいてい(もちろんPythonも)プログラムを上から順に実行します。(これを逐次処理といいます)
ただ、関数などのブロックは、ブロックを呼び出された時(つまり関数を呼び出された時)に初めて実行される。というキマリがあります。こういうふうに def ほにゃらら って最初に書かれていても、その関数の中のブロックは最初は素通りされてしまいます。(def は定義って意味です。最初は定義するだけ~)
そのあと、ブロックの外に出てきた square() で初めて呼び出されて実行されるってわけ。

関数というのは、定義したあと、こうやって後から何度も呼び出して使うことができるプログラムのブロックであるわけです。

より関数らしく!

まあこれでも十分関数なんですが、もっと、よりそれっぽく(?)してみましょう。

関数の後ろに()とカッコが付いてるの、気になりません? ワタシ、気になりますw

実はこのカッコ、まえにでてきたprint()文のカッコのように、中にいろいろ入れられるのですよー。

※超余談ですが実はprintも関数なんです。もとから中身が用意されている関数なのですねー

プログラムをこんな風に書き換えてみましょう。

画像25

4行目と6行目の()の中にsizeと入れて、9行目のsquare()の中には100と入れています。

この、sizeというのは命令ではなくて、変数なんです。この場合は、sqareという関数ブロックの中でだけ使われるローカル変数というやつ。(なので、sizeという名前で決まっているわけじゃありません、好きな言葉で良いです。)

ここでは 9行目のsqare(100)で、square関数に100を送り込んでいます。square関数は、4行目のdefで定義されていますね。その定義をみると、カッコの中にsizeとあって、この関数ブロックの中では送り込まれた100という数字はsizeという(ローカル)変数に代入されますヨ。という意味です。

そして、square関数のなかでsizeの値が使われているのは6行目の

forward(size)

正方形のサイズは一辺の大きさで変わるので、亀が直線を歩く距離でサイズが決まるわけですねー☆

もちろん、関数は何度でも呼び出せますから、

画像27

こんなふうに値を変えつつ呼び出すことができます。※9~11行目だけ書き換えました。

画像26

※亀さんは必ず左上に帰ってくるので、同じ原点から始まってサイズの違う正方形が3つ描かれている。

帰ってきたじぶんでやってみよう!
もう出てこないといいつつ帰ってきたコーナー。
sqare(数字)で好きなサイズの正方形を作れるようになりましたが、この数字の部分をforで繰り返してみたりしたらどうなっちゃうか、やってみるとおもしろいかも?

forで関数を繰り返し呼び出し!

↑のやってみようコーナーのさらに応用。
関数機能の使いこなし例として、こんなことやってみちゃいましょう。

画像28

今度はなにやら合わせ技です。

説明は後にして実行してみますね。

画像29

いつもの正方形が描かれたのち、ちょっと角度を変えて(10度 left方向に向いてます)また正方形が呼ばれていて、つぎつぎ進んでいきます。

9行目の

for i in range(36):

ということは、36回繰り返し。36回、10度ごとってことは、360度!

亀さんは四角を10度ごと角度を変えて、360度ぐるっと一周描くということです。

画像30

そうこういううちにみりみりすすんで

画像31

できました!!

綺麗な模様が描けました!(∩´∀`)∩☆

こんな素敵な模様がわずか10行そこそこで描けてしまうわけです。

やったね! (∩´∀`)∩☆

流石にここまでやったら入門としては十分なんじゃないでしょうか。

以外に簡単だったとおもいます。難しい説明は省略しましたし(おぃw)

この先困ったり、悩むことがあったら改めてPythonのドキュメントを調べたり、他の参考書を見てみるといいんじゃないかと思います。

入門といいつつ、いろいろテクニックも盛り込んでみました。
ここで使ったテクニックを応用したり、組み替えてみることで、他にもいろんなことができる筈だし、タートルグラフィックスでもいろんな模様を描けるはずなので、皆さんもどんどん試して、ラズパイや亀さんを酷使してアートしてみましょう☆

なお、Python のタートルグラフィックスの詳細は

こちらのページに詳しいドキュメントがあります。

画像32

forwardやleft、right以外にもいろんなコマンド(関数)が用意されているので、これらを使ってみるのも楽しいとおもいますよー☆

最後に

このタートルグラフィックスというやつ、コンピュータの概念やアルゴリズムを図形を通じてビジュアルに学べるので、入門用としてとっても優秀だとおもいます。
そのタートルグラフィックスが最初からサポートされているPython。いいですね☆ 他の構文なども含めて初心者にも覚えやすいし。やっぱりおすすめの言語です。

難しいこと考えずにちょちょっと書いてみるだけでこんなに綺麗な図形が描けちゃうのはよいですねー。

よくある言語入門の計算してみよーとか、画面に文字をかいてみよー的なもの(今回も最初にちょろっと入れましたが)なんてやつより、とっつきやすいし目で見て結果がわかるので面白いんんじゃないかなとおもいます。

今回、RaspberryPi 400というこれまた優秀なハードが入手できたので私も初心に戻って書いてみました。やっぱり触っていじってみるととっても楽しいですね☆

ただ、今回は超入門だし、長くなるのでif文とかは出していません。そこら辺まで扱えると十分自分の力でプログラミングできるようになるでしょうし、コンピュータを扱う楽しさ・奥深さをぐぐっと味わってもらえるとおもうのですが、ま、そういうところをもうちょっと学びたくなったら

↑こちらの本などもおすすめです☆

以下、カラー化などをオマケに載せておきます。この記事のトップ画像みたいなのも簡単にできちゃいますよー☆

ここから先は

1,126字 / 6画像

¥ 200

この記事が参加している募集

おうち時間を工夫で楽しく

よろしければサポートお願いします!いただいたサポートはクリエイターとしての活動費にさせていただきます!感謝!,,Ծ‸Ծ,,