見出し画像

【先生向け】小学生でもできる!はじめてのPythonプログラミング講座

はじめに。


本記事をご覧いただきありがとうございます。今回は、学校の先生や小学生に向けたPythonプログラミング記事をテーマに書いていきます。

まず、今回のプログラミング記事の難易度ですが、小学5年生~中学1年生を想定した記事です。より低学年の生徒に教える場合に関しては、必要に応じてプログラムを簡単にしてください。

今回のテーマ


〇 簡単、お買い物プログラムにチャレンジしてみよう!

それでは、下記のプログラム「完成形」を見ていきましょう。

# shopping.py
import time
import item

def start_shopping():
    while True:
        
        username = input("お名前を入力してね:")
        print("お名前を確認中...")
        time.sleep(3)

        if username.strip():
            print("ようこそ!" + username.strip() + "さん!")
            break

        else:
            print("ログイン失敗。")

def select():
    while True:
        print("野菜とお肉どちらを買いますか?")
        print("野菜 or 肉 を入力。")
        select_shopping = input("入力してね!:")

        if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:
            item.vegetable()
            break
        
        elif select_shopping in ["肉", "にく", "ニク", "お肉"]:
            item.meat()
            break

        else:
            print("再度入力してください。")

print("木村マーケットへようこそ!") 
start_shopping()
select()

print("ありがとうございました。")
# item.py
def vegetable():
    while True:
        vegetable_list = ["人参", "玉ねぎ", "トマト", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["人参", "にんじん", "ニンジン"]:
            print("人参を買いました。")

        elif my_Basket in ["玉ねぎ", "たまねぎ", "タマネギ"]:
            print("玉ねぎを買いました。")

        elif my_Basket in ["トマト", "とまと"]:
            print("トマトを買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

def meat():
    while True:
        vegetable_list = ["鶏肉", "豚肉", "牛肉", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["鶏肉", "とりにく", "トリニク"]:
            print("鶏肉を買いました。")

        elif my_Basket in ["豚肉", "ぶたにく", "ブタニク"]:
            print("豚肉を買いました。")

        elif my_Basket in ["牛肉", "ぎゅうにく", "ギュウニク"]:
            print("牛肉を買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

起動すると、このような形になります。

木村マーケットへようこそ!
お名前を入力してね:木村 # 名前を入力する。
お名前を確認中... # timeモジュールで3秒まつ
ようこそ!木村さん! # 入力した名前が表示される。
野菜とお肉どちらを買いますか?
野菜 or 肉 を入力。
入力してね!:野菜
['人参', '玉ねぎ', 'トマト', 'おしまい']
買いたい物を入力してね!人参
人参を買いました。
['人参', '玉ねぎ', 'トマト', 'おしまい']
買いたい物を入力してね!たまねぎ
玉ねぎを買いました。
['人参', '玉ねぎ', 'トマト', 'おしまい']
買いたい物を入力してね!おしまい
お買い物をやめます。
ありがとうございました。

それでは実際にプログラムの意味と、ご自身で組み立ててみましょう!

今回使うロジック


  1. print 関数

  2. input 関数

  3. strip 関数

  4. if文

  5. while文

  6. def 関数定義

  7. 変数

  8. リスト

主に上記を使います。それでは簡単に1~8の説明をしていきます。

print("引数")

print関数は、引数に与えた値を画面に文字として表示する関数です。
文字を扱う場合はシングルクォーテーション、もしくはダブルクォーテーションで囲みます。数字や変数を扱う場合はシングルクォーテーションや、ダブルクォーテーションは不要です。

select = input("入力:")

input関数は、入力された値を受け取る関数です。 入力された値は指定した変数に保存されます。

文字列や数字、好きな値を格納することができます。引数に文字を与えると、入力待ちの際に文字として表示されます。

select.strip()

strip関数は、文字列の最初や最後にある空白文字を削除する関数です。
今回は入力した値が空白の場合、何も入力されていないのと同じにするために、使用しています。

if hoge == 10:
    print("10")

elif hoge == "10":
    print("文字の10")

else:
    print("それ以外")

if文は、当てはまった条件のグループにあるプログラムを実行します。
「if」はもし、「elif」はそれ以外のもし、「else」はそれ以外になります。

グルーピング「その条件に当てはまった時の処理」は、 インデント(字下げ)で行います。 Pythonでは一般的に「スペース4個」でインデントします。

while True:

while文は指定した条件になるまで、処理を続けます。while True:とすることで、Scratchでいう「ずっと」のパーツと同じ意味になります。

def hoge() -> str:
    return "hoge"

defは好きな関数を自作することができます。上記の関数はprint(hoge())とした場合、hogeと表示されます。

hogehoge = 10
print(hogehoge)
# 出力結果
10

変数は、値を入れておくための箱のような仕組みです。好きな名前で生成することができますが、予約語「print」などは使用できません。

hugahuga = [1, 2, 3, 4, 5]
print(hugahuga[0]) # インデックスによる指定
# 出力結果
1

リストは、変数と異なり複数の値を格納できます。取り出すときはインデックスによる指定が必要です。

実際に組み立ててみよう!


では、実際にプログラムを組み立てていきましょう!
まずは下記のファイルを同じフォルダに作成してください。
フォルダ名は好きな名前で問題ございません。

プログラムを実行する際はshopping.pyを実行してください。

次に、下記のにファイルを作成しましょう。

  • shopping.py

  • item.py

shopping.pyは主にお買い物プログラムの本体部分を作成していきます。
item.pyは、shopping.pyに必要な関数などを作成していくファイルとして使用します。

shopping.pyの作成


では、まず初めにshopping.pyの作成を行います。

import time

def start_shopping():
    while True:
        
        username = input("お名前を入力してね:")
        print("お名前を確認中...")
        time.sleep(3)

        if username.strip():
            print("ようこそ!" + username.strip() + "さん!")
            break

        else:
            print("ログイン失敗。")

では、まずはdef start_shopping():として、ショッピングプログラムを開始するための関数を定義します。
インデント(字下げ)としてスペース4個を入力し、while True:「ずっと続ける。」とします。

usernameという変数を作成します。usernameは変数なので好きな名前を付けていただいて問題ありません。

username = input("お名前を入力してね:")として、input関数を使用して、入力待ち状態にします。

入力された値は、変数usernameに格納されます。

 print("お名前を確認中...")
 time.sleep(3)

ここは「お名前を確認中…」と表示して3秒待ちます。
time.sleep(3)は、Scratchで言うところの「3秒待つ」に該当します。
また、time.sleepを使う場合は、import timeをあらかじめ行う必要があるので注意してください。

  if username.strip():
            print("ようこそ!" + username.strip() + "さん!")
            break

        else:
            print("ログイン失敗。")

次にif文です。Scratchでいう「もし、でなければ」のパーツに該当します。
if username.strip():とすることで、もしusernameに値があったらというプログラムになります。今回は.strip()を追加することで、空白だけを入力した場合でも値が無いと判定されてelse:「でなければ」のプログラムを実行します。

値がある場合は「ようこそ!(入力された名前)さん」と表示され、break「ずっとを抜ける。」を実行します。

値が無い場合は「ログイン失敗」が表示されてもう一度while文のプログラムが実行されます。

def select():
    while True:
        print("野菜とお肉どちらを買いますか?")
        print("野菜 or 肉 を入力。")
        select_shopping = input("入力してね!:")

        if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:
            break
        
        elif select_shopping in ["肉", "にく", "ニク", "お肉"]:
            break

        else:
            print("再度入力してください。")

次に買いたい商品を選ぶための関数、select関数を組み立てていきます。
先ほどと同じように、def select():としてselect関数を作成します。
同様にwhile True:として、print関数で「野菜とお肉どちらを買いますか?」と「野菜 or 肉 を入力。」を表示します。

先ほどと同様にselect_shopping = input("入力してね!:")として、入力待ちにし、入力された値をselect_shopping変数に格納します。

if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:
            break
        
        elif select_shopping in ["肉", "にく", "ニク", "お肉"]:
            break

        else:
            print("再度入力してください。")

if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:は、入力した値が、カッコの中にあるのかを確認して、いずれかに一致した場合はif文のプログラムを実行します。

elifはそのほかの条件を追加するときに使用します。
上記と同じように入力された値が["肉", "にく", "ニク", "お肉"]:であれば、その行のプログラムを実行します。

上記以外の場合はelseに行き「再度入力してください。」を表示して再度プログラムが実行されます。

print("木村マーケットへようこそ!") 
start_shopping()
select()

print("ありがとうございました。")

では、実際に組み立てた関数を使用してプログラミングしていきましょう。
まず初めに、print("木村マーケットへようこそ!")を記述して「木村マーケットへようこそ!」を表示します。

その次に、作成したstart_shopping()関数を呼びます。start_shopping()関数を呼ぶと先ほど定義したプログラムが実行されます。

同様にselect関数を呼びます。select関数が終えると、print("ありがとうございました。")が呼ばれ「ありがとうございました。」と表示され、プログラムが終了します。

item.pyの作成


次に、商品情報を表示するプログラムを作成します。
item.pyを開き、下記のプログラムを記載します。

def vegetable():
    while True:
        vegetable_list = ["人参", "玉ねぎ", "トマト", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["人参", "にんじん", "ニンジン"]:
            print("人参を買いました。")

        elif my_Basket in ["玉ねぎ", "たまねぎ", "タマネギ"]:
            print("玉ねぎを買いました。")

        elif my_Basket in ["トマト", "とまと"]:
            print("トマトを買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

def meat():
    while True:
        vegetable_list = ["鶏肉", "豚肉", "牛肉", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["鶏肉", "とりにく", "トリニク"]:
            print("鶏肉を買いました。")

        elif my_Basket in ["豚肉", "ぶたにく", "ブタニク"]:
            print("豚肉を買いました。")

        elif my_Basket in ["牛肉", "ぎゅうにく", "ギュウニク"]:
            print("牛肉を買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

このプログラムは、商品の情報を表示して、実際に購入するまでの機能を提供するプログラムです。

def vegetable():
    while True:
        vegetable_list = ["人参", "玉ねぎ", "トマト", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["人参", "にんじん", "ニンジン"]:
            print("人参を買いました。")

        elif my_Basket in ["玉ねぎ", "たまねぎ", "タマネギ"]:
            print("玉ねぎを買いました。")

        elif my_Basket in ["トマト", "とまと"]:
            print("トマトを買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

先ほどのdefと同じようにdef vegetable():でvegetable関数を作成します。
while True:として、vegetable_list = ["人参", "玉ねぎ", "トマト", "おしまい"]を入力します。※vegetable_listはwhileの前でも大丈夫です。

リスト「今回はvegetable_list 」は変数と異なり、複数の値を格納することができます。リストに関しても好きな名前で定義することができます。

print(vegetable_list)としてあげて、リストを表示します。
my_Basket = input("買いたい物を入力してね!")として、入力待ち状態にします。入力された値は変数「my_Basket 」に格納されます。

if my_Basket in ["人参", "にんじん", "ニンジン"]:
            print("人参を買いました。")

        elif my_Basket in ["玉ねぎ", "たまねぎ", "タマネギ"]:
            print("玉ねぎを買いました。")

        elif my_Basket in ["トマト", "とまと"]:
            print("トマトを買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

先ほどと同様なロジックでif文を記載します。
「おしまい」と入力すると、breakするため関数が終了します。

同様に下記のプログラムも作成しましょう。

def meat():
    while True:
        vegetable_list = ["鶏肉", "豚肉", "牛肉", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["鶏肉", "とりにく", "トリニク"]:
            print("鶏肉を買いました。")

        elif my_Basket in ["豚肉", "ぶたにく", "ブタニク"]:
            print("豚肉を買いました。")

        elif my_Basket in ["牛肉", "ぎゅうにく", "ギュウニク"]:
            print("牛肉を買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

完成形は下記のようになるはずです。

def vegetable():
    while True:
        vegetable_list = ["人参", "玉ねぎ", "トマト", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["人参", "にんじん", "ニンジン"]:
            print("人参を買いました。")

        elif my_Basket in ["玉ねぎ", "たまねぎ", "タマネギ"]:
            print("玉ねぎを買いました。")

        elif my_Basket in ["トマト", "とまと"]:
            print("トマトを買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

def meat():
    while True:
        vegetable_list = ["鶏肉", "豚肉", "牛肉", "おしまい"]
        print(vegetable_list)
        my_Basket = input("買いたい物を入力してね!")

        if my_Basket in ["鶏肉", "とりにく", "トリニク"]:
            print("鶏肉を買いました。")

        elif my_Basket in ["豚肉", "ぶたにく", "ブタニク"]:
            print("豚肉を買いました。")

        elif my_Basket in ["牛肉", "ぎゅうにく", "ギュウニク"]:
            print("牛肉を買いました。")

        elif my_Basket == "おしまい":
            print("お買い物をやめます。")
            break

        else:
            print("正しい商品を入力してください。")

shopping.pyとitem.pyを結合


それでは、実際にitem.pyの機能をshopping.pyで使用できるようにしていきます。

今のshopping.pyを見ていきましょう。

import time

def start_shopping():
    while True:
        
        username = input("お名前を入力してね:")
        print("お名前を確認中...")
        time.sleep(3)

        if username.strip():
            print("ようこそ!" + username.strip() + "さん!")
            break

        else:
            print("ログイン失敗。")

def select():
    while True:
        print("野菜とお肉どちらを買いますか?")
        print("野菜 or 肉 を入力。")
        select_shopping = input("入力してね!:")

        if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:
            break
        
        elif select_shopping in ["肉", "にく", "ニク", "お肉"]:
            break

        else:
            print("再度入力してください。")

print("木村マーケットへようこそ!") 
start_shopping()
select()

print("ありがとうございました。")

上記のプログラムに3行足していきます。

import time
import item # ← 追加をした行

def start_shopping():
    while True:
        
        username = input("お名前を入力してね:")
        print("お名前を確認中...")
        time.sleep(3)

        if username.strip():
            print("ようこそ!" + username.strip() + "さん!")
            break

        else:
            print("ログイン失敗。")

def select():
    while True:
        print("野菜とお肉どちらを買いますか?")
        print("野菜 or 肉 を入力。")
        select_shopping = input("入力してね!:")

        if select_shopping in ["野菜", "やさい", "ヤサイ", "お野菜"]:
            item.vegetable() # ← 追加をした行
            break
        
        elif select_shopping in ["肉", "にく", "ニク", "お肉"]:
            item.meat() # ← 追加をした行
            break

        else:
            print("再度入力してください。")

print("木村マーケットへようこそ!") 
start_shopping()
select()

print("ありがとうございました。")
time.sleep(3) # ファイルをクリックして実行する場合は追加

import itemとしてあげて、item.pyの関数を読み込みます。こうすることでitem.pyに定義したvegetable関数とmeat関数をshopping.pyでも使用できるようになります。使用するときはitem.vegetable()というように「item.」がつく点に注意してください。

また、import itemをfrom item import*とすることができますが、これは作成した関数が既存関数に衝突したり、どのファイルの関数なのかが分からなくなってしまう可能性があるため、使用は避けるべきです。

最後に。


如何でしたか?上手に作成することはできましたか?
今回の記事は小学生から中学生に向けて記載させて頂きました。

今回の記事を見て、プログラミングって楽しいと少しでも思ってくれたら、うれしいです。

また、Pythonの学習を始めたての方にもオススメの記事となっておりますので、もしよろしければ挑戦してみてください。

その他にも、SESエンジニアに向けての記事を記載しています。
もしよろしければご覧ください。


いいなと思ったら応援しよう!