~演習~[Python] 関数を使ってコードを見やすくしよう!

みなさんこんにちは。
本日は『[Python] 関数を使ってコードを見やすくしよう!』における
演習問題を解いて実力をテストしましょう。
まずは自身で演習問題に取り組みつつ、
演習問題が完了したら、回答で正解チェックしましょう。




Today's Contents




【問題101】
関数を定義する方法を教えてください。

【問題102】
名前を受け取って「〇さん、こんにちは!」と出力する関数を作成してください。

【問題103】
2つの数値を足し算して結果を返す関数を書いてください。

【問題104】
デフォルト引数を使い、挨拶文をカスタマイズする関数を作成してください(デフォルトは「おはよう」)。

【問題105】
リストを受け取り、その要素の合計を返す関数を定義してください。

【問題106】
可変長引数(*args)を使って、任意の個数の数値の平均を返す関数を書いてください。

【問題107】
グローバル変数 count の値を1増やす関数を作成してください。

【問題108】
再帰関数を使って階乗(n!)を計算する関数を実装してください。

【問題109】
ラムダ関数を使って、2つの数値を掛け算する無名関数を定義してください。

【問題110】
関数内で別の関数(ヘルパー関数)を定義し、外側の関数から呼び出す例を示してください。

【問題111】
キーワード引数を使い、名前と年齢を表示する関数を作成してください。

【問題112】
関数のDocstringを追加して、簡単な説明を記載してください。

【問題113】
関数内でグローバル変数を変更しようとするとエラーが発生する例を示し、修正してください。

【問題114】
リストを引数で受け取り、そのリストを逆順にする関数を書いてください(元のリストは変更せずに新しいリストを返す)。

【問題115】
複数の戻り値を返す関数を作成し、受け取って表示してください。

【問題116】
偶数のみを抽出して返す関数をリスト内包表記を使って作成してください。

【問題117】
デフォルト引数が可変オブジェクト(例:リスト)の場合の注意点を示す例を書いてください。

【問題118】
関数の引数に型ヒントを追加してください(例:int型の引数を受け取り、str型を返す)。

【問題119】
例外処理を組み込み、0除算を防ぐ割り算関数を作成してください。

【問題120】
クロージャーを使い、カウンター機能(呼び出すたびに数値が増加)を実装してください。



【問題101】def キーワードで関数を定義します。

【問題102】引数を受け取り、f文字列で整形して出力します。

【問題103】return で計算結果を返します。

【問題104】引数にデフォルト値を指定します。

【問題105】sum() 関数を使うと簡単です。

【問題106】sum(args) / len(args) で平均を計算します。

【問題107】global キーワードで変数を宣言します。

【問題108】終了条件を n == 0 または n == 1 に設定します。

【問題109】lambda x, y: x * y のように書きます。

【問題110】関数内で def を再度使います。

【問題111】引数を name="名無し", age=20 のように定義します。

【問題112】関数の先頭に """説明文""" を追加します。

【問題113】global キーワードで変数を宣言します。

【問題114】スライス [::-1] を使います。

【問題115】return a, b で複数の値を返せます。

【問題116】[x for x in list if x % 2 == 0] を使います。

【問題117】デフォルト引数に空のリストを直接指定しないでください。

【問題118】def func(x: int) -> str: のように書きます。

【問題119】try と except ZeroDivisionError を使います。

【問題120】外側の関数で変数を定義し、内側の関数で変更します。



【問題101】
関数を定義する方法を教えてください。

def my_function():
   print("関数が呼び出されました")


【問題102】
名前を受け取って「〇さん、こんにちは!」と出力する関数を作成してください。

def greet(name):
   print(f"{name}さん、こんにちは!")


【問題103】
2つの数値を足し算して結果を返す関数を書いてください。

def add(a, b):
   return a + b


【問題104】
デフォルト引数を使い、挨拶文をカスタマイズする関数を作成してください(デフォルトは「おはよう」)。

def greeting(message="おはよう"):
   print(message)


【問題105】
リストを受け取り、その要素の合計を返す関数を定義してください。

def sum_list(numbers):
   return sum(numbers)


【問題106】
可変長引数(*args)を使って、任意の個数の数値の平均を返す関数を書いてください。

def average(*args):
   return sum(args) / len(args)


【問題107】
グローバル変数 count の値を1増やす関数を作成してください。

count = 0
def increment():
   global count
   count += 1


【問題108】
再帰関数を使って階乗(n!)を計算する関数を実装してください。

def factorial(n):
   return 1 if n == 0 else n * factorial(n-1)


【問題109】
ラムダ関数を使って、2つの数値を掛け算する無名関数を定義してください。

multiply = lambda x, y: x * y


【問題110】
関数内で別の関数(ヘルパー関数)を定義し、外側の関数から呼び出す例を示してください。

def outer():
   def inner():
      print("ヘルパー関数です")
   inner()


【問題111】
キーワード引数を使い、名前と年齢を表示する関数を作成してください。

def show_info(name="名無し", age=20):
   print(f"名前: {name}, 年齢: {age}")


【問題112】
関数のDocstringを追加して、簡単な説明を記載してください。

def sample():
   """これはサンプル関数です"""
   pass


【問題113】
関数内でグローバル変数を変更しようとするとエラーが発生する例を示し、修正してください。

value = 10
def update():
   global value # この行を追加
   value += 5


【問題114】
リストを引数で受け取り、そのリストを逆順にする関数を書いてください(元のリストは変更せずに新しいリストを返す)。

def reverse_list(lst):
   return lst[::-1]


【問題115】
複数の戻り値を返す関数を作成し、受け取って表示してください。

def get_values():
   return 100, "Hello"
a, b = get_values()
print(a, b)


【問題116】
偶数のみを抽出して返す関数をリスト内包表記を使って作成してください。

def filter_even(numbers):
   return [x for x in numbers if x % 2 == 0]


【問題117】
デフォルト引数が可変オブジェクト(例:リスト)の場合の注意点を示す例を書いてください。

# 悪い例(デフォルト値が共有される)
def bad_func(lst=[]):
   lst.append(1)
   return lst

# 良い例
def good_func(lst=None):
   lst = lst or []
   lst.append(1)
   return lst


【問題118】
関数の引数に型ヒントを追加してください(例:int型の引数を受け取り、str型を返す)。

def to_string(num: int) -> str:
   return str(num)


【問題119】
例外処理を組み込み、0除算を防ぐ割り算関数を作成してください。

def safe_divide(a, b):
   try:
      return a / b
   except ZeroDivisionError:
      return "エラー: 0で割れません"


【問題120】
クロージャーを使い、カウンター機能(呼び出すたびに数値が増加)を実装してください。

def counter():
   count = 0
   def inner():
      nonlocal count
      count += 1
      return count
   return inner



本日はここまで。
お疲れ様でした!


コメント