python 目次 - ray88’s diary
各種目次 - ray88’s diary
■引数の個数を固定しない(可変長の引数)関数
■引き数をタプルで受け取る(*args)
*args のように引数名の前に「*」を付けると、引数argsに渡された値がタプルにまとめて入る。 なお、引数名は「args」である必要はない。
【書式】
def 関数名(*args):
ステートメント
【サンプルコード】
def output_items(*items): print(items) #使用例 output_items() #引数なしの場合 output_items("りんご","みかん","ばなな") #引数が3個の場合
出力結果
※受け取った値はタプルに入る
■最初の2個は必須の引数。残りはオプション
必須の引数と可変長の*argsを組み合わせることもできる。
【サンプルコード】
関連URL:Python リストの要素(文字列)を連携して文字列を作成 join() - ray88’s diary
# 2. 最初の2個は必須の引数、残りはオプション def greet_friends(name, age, *friends): message = f"{name}さん({age}歳)の友達:" if friends: return message + "、".join(friends) else: return message + "なし" print(greet_friends("太郎", 25)) # 太郎さん(25歳)の友達:なし print(greet_friends("花子", 30, "佐藤", "田中")) # 花子さん(30歳)の友達:佐藤、田中
出力結果
■キーワード引数をまとめて辞書に変換して受け取る
**keywords のように引数名の前に「**」を付けると、引数の名前がそのまま辞書のキーになり、引数の値がそのキーの値になる。なお、引数名は「args」である必要はない。
【サンプルコード】
# 3. 複数のキーワード引数をまとめて辞書で受け取る (**kwargs) def create_profile(**info): profile = [] for key, value in info.items(): profile.append(f"{key}: {value}") return "、".join(profile) print(create_profile(名前="山田", 職業="エンジニア")) # 名前: 山田、職業: エンジニア print(create_profile(名前="鈴木", 年齢=28, 趣味="読書", 出身="東京")) # 名前: 鈴木、年齢: 28、趣味: 読書、出身: 東京
出力結果
■ 必須引数とキーワード引数を組み合わせ
# 4. 必須引数とキーワード引数を組み合わせ def build_user_data(user_id, name, **details): user_data = { "id": user_id, "name": name } user_data.update(details) # キーワード引数を辞書に追加 return user_data print(build_user_data(1, "田中")) # {'id': 1, 'name': '田中'} print(build_user_data(2, "佐藤", age=35, city="大阪", job="デザイナー")) # {'id': 2, 'name': '佐藤', 'age': 35, 'city': '大阪', 'job': 'デザイナー'}
出力結果