CoderDojo青梅 午後の部では、Python言語でコードを記述してラズタンクを操作します。
本書は、Python言語を遊びながら体験するものです。
- 第一章.サーバーにSSH接続する
- 第二章.Linuxの基礎的なコマンド一覧
- 第三章.Python コードを実行する
- 第四章.(例)サイコロ乱数
- 第五章.(例)おつり計算機
- 第六章.(例)おみくじ
- 第七章.(例)じゃんけん
第一章.サーバーにSSH接続する
PythonはWindows PCにインストールして使うことができますが、各自のPC環境が異なることが想定できるので、統一するためサーバーのPythonを使います。
この章では、Windows PC から、クラウドにあるUbuntuサーバーOSにSSHコマンドを使ってリモート接続します。
なお、インターネット上のサーバーなので、SSH秘密鍵🗝️と公開鍵🔒でしっかりとセキュリティ対策してあります。
STEP1.SSH秘密鍵
Windows のユーザーディレクトリにSSH秘密鍵を保存します
ファイルエクスプローラーを起動して、ユーザーディレクトリに新しいファイルを作り、メモ帳で編集します
C:\Users\ユーザー名\.ssh\rsa_ome.txtファイルの内容はRSA形式のSSH秘密鍵です。内容はメンターが提供します。
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEA0 <中略> Lc95n/vMkI=
-----END RSA PRIVATE KEY-----STEP2. SSH接続
Windows PC の CMD ターミナルで、SSHコマンドを実行して、サーバーOSにログインします
オプション -i は秘密鍵の指定, -t は疑似端末の割り当て(対話的なコマンドの実行に必要)
> ssh -i .ssh\rsa_ome.txt -t ome**@dojo.funnygeekjp.comログインに成功すると下記プロンプトが表示されます
(pyenv) ome**@dojo:~$ STEP3. バッチファイル化
毎回SSH接続するときに、SSHコマンドを入力するのは大変だ。
そこで、コマンドをバッチファイル内に記述して起動を簡素化しよう。
下記ディレクトリに、メモ帳で新しいファイルを作ります。ファイル名は好きな名前をつけます。
例 C:\Users\ユーザー名\run-ome.batファイルの内容はSSHコマンド
ssh -i .ssh\rsa_ome.txt -t ome**@dojo.funnygeekjp.comバッチファイルを実行して、サーバーにログインしよう
C:\Users\ユーザー名>run-ome.bat
(pyenv) ome**@dojo:~$第二章.Linuxの基礎的なコマンド一覧
Linux サーバーOSのコマンド一覧です
| コマンド | 機能 | 例 |
| pwd | 今いるフォルダ(場所)を表示する | pwd |
| ls | ・フォルダにあるファイルを表示する ・詳細も表示する | ls ls -la |
| cd | フォルダを移動する ファイルをひとつ上のフォルダに戻る | cd <移動先フォルダ名> cd .. |
| mkdir | 新しいフォルダを作る | mkdir <新しいフォルダ名> |
| rm | ファイルを削除する(復活できません) | rm <削除するファイル名> |
| cat | ファイルの中身を表示する | cat <表示するファイル名> |
| exit | ターミナルを終了する | exit |
| cp | ファイルを複製する | cp <複製元名称> <複製先名称> |
| nano | ファイルを編集する ・[ctrl]+[s] 保存 ・[ctrl]+[x] 終了 | nano <ファイル名> |
第三章.Python コードを実行する
Pythonコードを作って、実行してみる
STEP1. 実行する場所を決める
[python]というディレクトリを作って、移動する
$ mkdir python
$ cd pythonSTEP2. 新しいファイルでPythonコードを作る
nano エディタで新しいファイル[hello.py]を作成し、コードを書きます。
ファイル名の[.py]は python のコードであることを意味します。
$ nano hello.pyファイルには下記コマンドを書きます
print("こんにちは")ファイルを保存してから nanoエディタを終了します
[ctrl]+[s]
[ctrl]+[x]STEP3. Pythonコードを実行する
pythonコマンドを実行します
$ python hello.py
もしくは
$ python3 hello.py「こんにちは」と表示されたら成功です
第四章.(例)サイコロ
サイコロの目を乱数で表示します。ファイル名[01dice.py]
import random
print("🎲 サイコロをふります!")
input("Enterキーを押してください")
# 1〜6の数字をランダムに選ぶ
dice = random.randint(1, 6)
# 結果を表示
print(f"出た目は {dice} です!")randomモジュールについて
乱数を使うために[import random]を取り込んでいます。
[random.randint(a, b)]は[1]から[6]までの整数の乱数を dice という変数に代入しています。
randomモジュールには下記のような機能を使えます。
| 関数 | 機能 | 例 |
| random() | [0.0] から [1.0] までの少数を返す | dice = random.random() |
| uniform(a, b) | a から b までの少数を返す | dice = random.uniform(1.5, 3.5) |
| randint(a, b) | a から b までの整数を返す | dice = random.randint(1, 6) |
| choice(seq) | リストから1つを返す | dice = random.choice( [ ‘赤’, ‘青’, ‘黄’ ] ) |
print(f “” )について
下記いずれも、文字と変数をつなげて表示できます。混在するときは[f]フォーマットされた文字列の方がシンプルです
print(f”出た目は {dice} です!”)
print( “出た目は ” + dice + “です!”)
第五章.(例)おつり計算機
計算と if 文を練習します。ファイル名[02oturi.py]
# 質問と入力
print("💰 おつり計算機")
price = int(input("商品の値段を入力してください(円):"))
paid = int(input("支払った金額を入力してください(円):"))
# おつりを計算
change = paid - price
# 結果を表示
if change < 0:
print("お金が足りません!")
else:
print(f"おつりは {change} 円です")第六章.(例)おみくじ
リスト変数を練習します。ファイル名[03omikuji.py]
import random
print("🔮 今日の運勢を占います!")
input("Enterキーを押してください...")
# 運勢のリスト
fortunes = ["大吉", "中吉", "小吉", "吉", "末吉", "凶"]
# ランダムに1つ選ぶ
result = random.choice(fortunes)
# 結果を表示
print(f"あなたの今日の運勢は… {result} です!")第七章.(例)じゃんけん
じゃんけんのコードを書いてみます。ファイル名[04janken.py]
import random
# じゃんけんを定義
GU = "グー"
CHO = "チョキ"
PA = "パー"
hands = [GU, CHO, PA]
# 勝敗を判定する独自の関数
def judge(ply, com):
if ply == com:
return "あいこです"
elif (ply == GU and com == CHO) or \
(ply == CHO and com == PA) or \
(ply == PA and com == GU):
return "あなたの勝ち!"
else:
return "あなたの負け…"
# あなたの選択
print("じゃんけんゲーム!")
ply = input("あなたの手を選んでください(グー、チョキ、パー):")
# 結果表示
com = random.choice(hands)
print(f"コンピュータの手は {com} です")
print( judge(ply, com) )変数と定数 について
[変数]は、コードの中で内容を変更するもの。変数名は小文字で書いて区別します。
[定数]は、内容を変えない。定数名は大文字で書きます
ちなみに[関数名]は単語を組み合わせて[getScore()]や[setName()]、もしくは[get_score()]や[set_name()]などと書きます。
独自の関数について
judge()という独自の関数を作りました。Scratchではブロック定義に相当します。
関数は[def]で定義します。judge(ply, com)関数のカッコ中の ply と com は引数です。外部の変数を引き継ぎます。
judge() 内の return で渡されるテキスト”あなたの勝ち!”などは戻り値といいます。

まとめ
本書では UbuntuサーバーOS にログインして、Pythonコードを作成・実行する体験ができました。
Pythonコードは、読みやすくて使いやすい万能なプログラミング言語で、学術計算やAI, ゲーム, ホームページなど幅広く活用されています。