メインコンテンツへスキップ
  1. 第05講 関数(2/2; 関数の応用) /

第05講 週次課題

週次課題 関数 Assert テスト
目次

課題05-1 デフォルト引数を持つ Hello World
#

難易度 ⭐

以下の条件を満たす関数 hello を作成してください.

  • 引数に何も与えられなければ "Hello World" を返す.
  • 引数に文字列が与えられれば,"Hello " + 文字列 を返す.
  • 引数に与えられた文字列が "Python" であれば,"Hi! Python" を返す.

以下のコードを含む hello2.py を作成してください. このコードを実行すると,正しく hello 関数が作成できていれば,何も出力されずに終了します.

# ここに hello 関数を定義してください.

# 以下のテストコードは変更しないでください.
assert hello() == "Hello World",          "Error: hello() が 'Hello World' を返しません."
assert hello("Python") == "Hi! Python",   "Error: hello('Python') が 'Hi Python' を返しません."
assert hello("Tamada") == "Hello Tamada", "Error: hello('Tamada') が 'Hello Tamada' を返しません."

課題05-2 引数により挙動が変わる Hello World
#

難易度 ⭐

以下の条件を満たす関数 hello を作成してください.

  • 引数に何も与えられなければ "Hello World" を返す.
  • 引数に文字列が与えられれば,"Hello " + 文字列 を返す.
  • 引数に与えられた文字列が "World" であれば,"Hi! World" を返す.

以下のコードを含む hello3.py を作成してください. このコードを実行すると,正しく hello 関数が作成できていれば,何も出力されずに終了します.

デフォルト引数は,何も指定されなかった場合と,指定された値がデフォルトのものであったときとを区別できません. そのため,可変長引数で引数の数によって挙動を変えることで,上記の条件を満たせるようになります.

# ここに hello 関数を定義してください.

# 以下のテストコードは変更しないでください.
assert hello() == "Hello World",          "Error: hello() が 'Hello World' を返しません."
assert hello("Python") == "Hello Python", "Error: hello('Python') が 'Hello Python' を返しません."
assert hello("World") == "Hi! World",     "Error: hello('World') が 'Hi! World' を返しません."

課題05-3 四則演算を行う関数をテストする処理
#

難易度 ⭐⭐⭐

課題04-1 で作成した四則演算を行う関数を作成する」で作成した関数 calc をテストする処理を作成してください. 以前に作成した calc.py をコピーして,calc2.py を作成してください. そして,calc2.py の最後に assert 文でテストを書いてください.

calcの条件分岐のすべてを網羅できるよう,いくつかのテストケースを用意してください.

def calc(value1, operator, value2):
    # この関数の中身は 課題04-1 からコピペしてください.
    pass

# 以下に assert 文でテストを書いてください.