見出し画像

Step11 関数実践--これまでの基礎を活用した実践プログラムを作る

前回は「関数」の基本を学びました。
今回は、これまで学んだ 変数・if文・for文・while文・リスト・辞書・関数 を組み合わせて、少し実践的なプログラムを作ってみましょう!

ただし、その前に新しいキーワードを紹介します。


1. import文とは?

Pythonには「標準ライブラリ」と呼ばれる便利な道具箱が最初から用意されています。
プログラムの最初の行に、import 文を使って記述することで、その道具箱を取り出して使えるようになるのです。

例:ランダムに値を選ぶための random モジュールを使う場合

import random

と書きます。
これで、この以降のコードにて random モジュールの機能を使えるようになります。
ここでは、「random.choice()」というメソッドについて取り上げて、その使い方をまずおぼえておきましょう。


random.choice() とは?

random.choice() は、リストなどの中から ランダムに1つの要素を取り出す 関数です。

例:

import random

fruits = ["apple", "banana", "orange"]
choice = random.choice(fruits)
print("選ばれたフルーツ:", choice)

実行するたびにfruitsリストの中の「apple」「banana」「orange」のどれかが選ばれて表示されます。

  ➤ choice = 選択する という意味なので、
「ランダムに1つ選ぶ」 → random.choice() と覚えると理解しやすいです。


2. おみくじプログラム

リスト+関数+random.choice() を組み合わせると、シンプルなおみくじが作れます。

import random

def omikuji():
    results = ["大吉", "中吉", "小吉", "凶"]
    choice = random.choice(results)
    print("今日の運勢は…", choice, "です!")

# 実行
omikuji()

このプログラムでは、実行するたびに、毎回違う結果が表示されることになります。今日の運勢を占ってみましょう(*^^*)


3. 簡単な計算機

2つの数字と演算子を受け取り、計算する関数を作ってみましょう。

def calc(a, b, op):
    if op == "+":
        return a + b
    elif op == "-":
        return a - b
    elif op == "*":
        return a * b
    elif op == "/":
        return a / b
    else:
        return "不明な演算子です"

# 実行例
print(calc(10, 5, "+"))  # 15
print(calc(10, 5, "*"))  # 50

関数を呼び出す際に、三つ目の引数に四則演算の記号を指定するのがポイントです。
きっと、もっと楽しいプログラムに変更できますし、input文を使用してユーザーに数値や演算子を聞くようにするともっといいものになると思いますので、ぜひチャレンジしてみてください(=゚ω゚)ノ


4. 成績判定プログラム

辞書と関数を組み合わせると、複数のデータを一気に処理できます。

def judge(scores):
    for subject, score in scores.items():
        if score >= 90:
            print(subject, ":", score, "点 → とてもよくできました!")
        elif score >= 60:
            print(subject, ":", score, "点 → 合格です")
        else:
            print(subject, ":", score, "点 → もう少しがんばりましょう")

# 実行例
my_scores = {"math": 85, "english": 92, "science": 58}
judge(my_scores)

for文で、辞書の中の「キー」をsubject変数へ、「値」をscore変数にそれぞれ格納しています。
これによって、それぞれの教科ごとに評価させることが可能になっています。
このあたりもinput文を使用して改造できそうですね( *´艸`)


5. while文で続ける「質問アプリ」

最後に、関数+while文で簡単な「質問アプリ」を作ってみましょう。

def ask():
    while True:
        word = input("好きな食べ物は?(exitで終了):")
        if word == "exit":
            print("終了します。")
            break
        else:
            print("あなたは", word, "が好きなんですね!")

# 実行
ask()

このプログラムは、「While True:」を使用して、「exit」と入力されない限りはずっと好きな食べ物を聞き続けるように作られています。
このままでは全く面白くないので、このプログラムが理解出来たら、ぜひrandomモジュールも使用して、色んな質問がランダムに聞かれるように内容を変更してみましょう!


練習問題

  1. import random を使い、好きな飲み物リストからランダムに1つ選んで表示する関数を作りましょう。

  2. 2つの数字を受け取り、割り算をして結果を返す関数を作りましょう(0で割ろうとしたら「割れません」と表示)。

  3. 辞書に「教科と点数」を入れ、平均点を計算して返す関数を作りましょう。

  4. while文を使って、ユーザーが「exit」と入力するまで名前を聞き続けるプログラムを関数にまとめましょう。

  5. for文+関数を使って、「九九の2の段」を表示するプログラムを作りましょう。


まとめ

  • import で標準ライブラリを使える

  • random.choice() でリストからランダムに選択できる

  • 関数とこれまでの文法を組み合わせると「おみくじ」「計算機」「成績判定」「質問アプリ」など、実践的なプログラムが作れる

どんどんと長いプログラムが書けるようになってきましたか?

次回は、これらをさらに発展させて「小さなアプリを大きく育てていく」ステップに挑戦していきましょう!

次の記事


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

DOI@日々学びの本質を考え続ける探求者 よろしければ応援お願いします! いただいたチップは引き続きプログラミングや学びについて、皆さんの利益になるようなよい記事を書くことで恩返しをさせていただきます!