Python 入門プログラミング

CoderDojo青梅 午後の部では、Python言語でコードを記述してラズタンクを操作します。
本書は、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 python

STEP2. 新しいファイルで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, ゲーム, ホームページなど幅広く活用されています。

コメントを残す