Pythonで関数を作ろう

問題1 : 関数であいさつ 〜その1〜

次のプログラムの空欄①と②を埋め、「こんにちは」と表示する関数 greet() を完成させてください。

プログラム

def greet():
    print( "①" )

②   # 関数を呼び出す

実行結果

こんにちは

この関数は、引数も戻り値も必要ないんだね。

だから関数名の後ろの()には何も書いてないし、returnもないのか。


①

②

問題2:関数であいさつ 〜その2〜

次のプログラムの空欄③を埋めて、引数 name を受け取り、「こんにちは、〇〇さん」と表示する関数を完成させてください。

プログラム

def greet_name(name):
    print( "こんにちは、" + ③ + "さん" )

greet_name("育人")   # 関数を呼び出す 引数として、"育人"という文字列を渡す

実行結果

こんにちは、育人さん

③

問題3:2つの数の合計を返す

プログラムの④を埋め、2つの数を受け取り、その合計を返す関数 add(a, b) を完成させてください。

プログラム

def add(a, b):
    return ④

result = add(3, 5)
print(result)   # 8 と表示される


実行結果

8

今度は、引数も戻り値もありますね。

合計だから計算しなくちゃだけど、④のところでやっていいんだよね?

その通りです。2つの値の加算結果を求める計算式を書いて下さい。


④

問題4:偶数か奇数か判定

プログラムの⑤と⑥を埋め、1つの数を受け取り、それが偶数なら「True」、奇数なら「False」を返す関数を完成させてください。

プログラム

def judge(num):
    if num % 2 == 0:
        return ⑤
    else:
        return ⑥

num = 7
if judge(num):
    print("偶数")
else:
    print("奇数")


実行結果

奇数

この関数、returnが2つある!!

そうなんです。1つの関数に複数のreturnがあって構いません。

ただし、returnが実行されたら、そこで関数は終了です。それ以降の処理は実行されません。

関数の呼び出しが、そのままifの条件に使われていますね。

この場合は、戻り値が「True」なら成立、「False」なら非成立となります。


⑤

⑥

問題5:大きい値を返す関数

プログラムの⑦を埋め、2つの数を受け取り、大きい方を返す関数 max_num(a, b) を完成させてください。

プログラム

def max_num(a, b):
    if ⑦:
        return a
    else:
        return b

print(max_num(10, 6))   # 10 と表示される

実行結果

10

完成したら、7行目の10と6をいろんな値に変えて実行してみましょう。


⑦

問題6:割り算の結果

プログラムの⑧と⑨を埋め、2つの数を受け取り、もし割る数が0なら「割れません」と表示し、0でなければ割り算の結果を返す関数を完成させてください。

プログラム

def divide(a, b):
    if ⑧:
        return ⑨
    else:
        return a / b

print(divide(10, 2))   # 5.0 と表示される
print(divide(20, 0))   # 割れません と表示される

実行結果

5.0
割れません

関数を2回呼び出していますね。

一度作ったら、何度でも使えますよ。


⑧

⑨

※この再現版では提出は行いません(送信先は未接続です)

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる