📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

文字列「<source lang="python">」を「<syntaxhighlight lang="python">」に置換
 
(同じ利用者による、間の3版が非表示)
21行目: 21行目:
def文に続けて関数名を記述した後、丸括弧()を記述する。丸括弧()の中には引数の定義を入れる場合もある。<br>
def文に続けて関数名を記述した後、丸括弧()を記述する。丸括弧()の中には引数の定義を入れる場合もある。<br>
文末にはコロンを記述する。また、関数のブロックはif文等と同様にインデントで字下げする。<br>
文末にはコロンを記述する。また、関数のブロックはif文等と同様にインデントで字下げする。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def 関数名([引数の定義]):
  def 関数名([引数の定義]):
     実行コード
     実行コード
  </source>
  </syntaxhighlight>
<br>
<br>
以下の例では、Hello!と返すSayHello関数である。<br>
以下の例では、Hello!と返すSayHello関数である。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def SayHello():
  def SayHello():
     print("Hello!")
     print("Hello!")
35行目: 35行目:
  # 出力
  # 出力
  Hello!
  Hello!
  </source>
  </syntaxhighlight>
<br>
<br>
上記のSayHello関数を変更して、引数に名前を入れてHello! <名前>を返す関数を作成する。<br>
上記のSayHello関数を変更して、引数に名前を入れてHello! <名前>を返す関数を作成する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def SayHello(name):
  def SayHello(name):
     print("Hello!" + name)
     print("Hello!" + name)
46行目: 46行目:
  # 出力
  # 出力
  Hello! Python
  Hello! Python
  </source>
  </syntaxhighlight>
<br>
<br>
===== 組み込み関数の使用 =====
===== 組み込み関数の使用 =====
組み込み関数を使用するには、関数名に丸括弧()を付けて呼び出す。<br>
組み込み関数を使用するには、関数名に丸括弧()を付けて呼び出す。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  s = "Python"
  s = "Python"
  print(len(s))
  print(len(s))
56行目: 56行目:
  # 出力
  # 出力
  6
  6
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


64行目: 64行目:
先頭から順に引数の位置を対応させて渡されるのが位置引数である。<br>
先頭から順に引数の位置を対応させて渡されるのが位置引数である。<br>
位置引数は、ここの引数の位置と意味を覚えておかないと正しく処理されないということに注意する。<br>
位置引数は、ここの引数の位置と意味を覚えておかないと正しく処理されないということに注意する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(food, drink, dessert):
  def dinner_menu(food, drink, dessert):
     print("夕食は" + food + "を用意しています。")
     print("夕食は" + food + "を用意しています。")
76行目: 76行目:
  飲み物は お茶 をおすすめします。
  飲み物は お茶 をおすすめします。
  デザートに ゼリー をどうぞ
  デザートに ゼリー をどうぞ
  </source>
  </syntaxhighlight>
<br>
<br>
===== キーワード引数 =====
===== キーワード引数 =====
83行目: 83行目:
<br>
<br>
上記の例を、キーワード引数を使用して実行する。<br>
上記の例を、キーワード引数を使用して実行する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(food, drink, dessert):
  def dinner_menu(food, drink, dessert):
     print("夕食は" + food + "を用意しています。")
     print("夕食は" + food + "を用意しています。")
95行目: 95行目:
  飲み物は お茶 をおすすめします。
  飲み物は お茶 をおすすめします。
  デザートに ゼリー をどうぞ
  デザートに ゼリー をどうぞ
  </source>
  </syntaxhighlight>
<br>
<br>
また、位置引数とキーワード引数は、混在させて関数を呼び出すことができるが、位置引数を先に記述する必要がある。<br>
また、位置引数とキーワード引数は、混在させて関数を呼び出すことができるが、位置引数を先に記述する必要がある。<br>
以下の例のように、dinner_menu関数の先頭の引数がfoodなので、第1引数のfoodから記述している。<br>
以下の例のように、dinner_menu関数の先頭の引数がfoodなので、第1引数のfoodから記述している。<br>
残りの引数は、キーワード引数を使用すれば順番は入れ替わっていても問題ない。<br>
残りの引数は、キーワード引数を使用すれば順番は入れ替わっていても問題ない。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dinner_menu("定食", dessert="ゼリー", drink="お茶")
  dinner_menu("定食", dessert="ゼリー", drink="お茶")
  </source>
  </syntaxhighlight>
<br>
<br>
===== デフォルト引数 =====
===== デフォルト引数 =====
109行目: 109行目:
<br>
<br>
以下の例では、引数を指定せずに関数を呼び出して、デフォルト引数の値で実行している。<br>
以下の例では、引数を指定せずに関数を呼び出して、デフォルト引数の値で実行している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(food="定食", drink="お茶", dessert="ゼリー"):
  def dinner_menu(food="定食", drink="お茶", dessert="ゼリー"):
     print("夕食は" + food + "を用意しています。")
     print("夕食は" + food + "を用意しています。")
121行目: 121行目:
  飲み物は お茶 をおすすめします。
  飲み物は お茶 をおすすめします。
  デザートに ゼリー をどうぞ
  デザートに ゼリー をどうぞ
  </source>
  </syntaxhighlight>
<br>
<br>
また、引数を指定して呼び出すと、次のように結果を変更することができる。<br>
また、引数を指定して呼び出すと、次のように結果を変更することができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dinner_menu("ハンバーグ", drink="赤ワイン", dessert="シャーベット")
  dinner_menu("ハンバーグ", drink="赤ワイン", dessert="シャーベット")
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


136行目: 136行目:
===== アスタリスク*で位置引数のタプル化 =====
===== アスタリスク*で位置引数のタプル化 =====
以下の関数が定義されているものとする。<br>
以下の関数が定義されているものとする。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(food, drink, dessert):
  def dinner_menu(food, drink, dessert):
     print(food)
     print(food)
     print(drink)
     print(drink)
     print(dessert)
     print(dessert)
  </source>
  </syntaxhighlight>
<br>
<br>
上記の関数の3つの引数をタプル化して1つに纏めて記述する。<br>
上記の関数の3つの引数をタプル化して1つに纏めて記述する。<br>
以下の例では、アスタリスク*を使用して*argsという引数で纏めている。(このargsは、Pythonで慣習的に指定されている)<br>
以下の例では、アスタリスク*を使用して*argsという引数で纏めている。(このargsは、Pythonで慣習的に指定されている)<br>
<nowiki>*args</nowiki>で引数が纏められて、それを変数argにfor文で順に取得して出力している。<br>
<nowiki>*args</nowiki>で引数が纏められて、それを変数argにfor文で順に取得して出力している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(*args):
  def dinner_menu(*args):
     for arg in args:
     for arg in args:
157行目: 157行目:
  お茶
  お茶
  ゼリー
  ゼリー
  </source>
  </syntaxhighlight>
<br>
<br>
また、位置引数とタプルを使用して次のように記述することもできる。<br>
また、位置引数とタプルを使用して次のように記述することもできる。<br>
以下の例では、関数の引数に位置引数と*argsを使用している。タプルtを作成して、関数を呼び出す時に*argsの位置にこのタプルを入れて実行している。<br>
以下の例では、関数の引数に位置引数と*argsを使用している。タプルtを作成して、関数を呼び出す時に*argsの位置にこのタプルを入れて実行している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def dinner_menu(food, *args):
  def dinner_menu(food, *args):
     print(food)
     print(food)
174行目: 174行目:
  お茶
  お茶
  ゼリー
  ゼリー
  </source>
  </syntaxhighlight>
<br>
<br>


===== アスタリスク**でキーワード引数の辞書化 =====
===== アスタリスク**でキーワード引数の辞書化 =====
以下の関数が定義されているものとする。<br>
以下の関数が定義されているものとする。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def food(breakfast="パン", lunch="牛丼", dinner="定食"):
  def food(breakfast="パン", lunch="牛丼", dinner="定食"):
     print(breakfast, lunch, dinner)
     print(breakfast, lunch, dinner)
187行目: 187行目:
  # 出力
  # 出力
  パン チャーハン ハンバーグ
  パン チャーハン ハンバーグ
  </source>
  </syntaxhighlight>
<br>
<br>
この関数の定義の3つのキーワード引数を辞書として1つに纏めて記述する。<br>
この関数の定義の3つのキーワード引数を辞書として1つに纏めて記述する。<br>
以下の例では、引数をアスタリスク**とkwargsで纏めている。(このkwargsは、Pythonで慣習的に指定されている)<br>
以下の例では、引数をアスタリスク**とkwargsで纏めている。(このkwargsは、Pythonで慣習的に指定されている)<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def food(**kwargs):
  def food(**kwargs):
     print(kwargs)
     print(kwargs)
199行目: 199行目:
  # 出力
  # 出力
  {'breakfast' : 'パン', 'lunch' : 'チャーハン', 'dinner' : 'ハンバーグ'}
  {'breakfast' : 'パン', 'lunch' : 'チャーハン', 'dinner' : 'ハンバーグ'}
  </source>
  </syntaxhighlight>
<br>
<br>
これは、以下のように、items関数を使用してキーと値を取得する形で記述することもできる。<br>
これは、以下のように、items関数を使用してキーと値を取得する形で記述することもできる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def food(**kwargs):
  def food(**kwargs):
     for k, v in kwargs.items():
     for k, v in kwargs.items():
213行目: 213行目:
  lunch チャーハン
  lunch チャーハン
  dinner ハンバーグ
  dinner ハンバーグ
  </source>
  </syntaxhighlight>
<br>
<br>
また、以下のように、辞書型変数dicを作成してfood関数の引数**kwargsに渡すこともできる。<br>
また、以下のように、辞書型変数dicを作成してfood関数の引数**kwargsに渡すこともできる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def food(**kwargs):
  def food(**kwargs):
     for k, v in kwargs.items():
     for k, v in kwargs.items():
228行目: 228行目:
  lunch チャーハン
  lunch チャーハン
  dinner ハンバーグ  
  dinner ハンバーグ  
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


238行目: 238行目:
<br>
<br>
注意点は、第2引数*argsと第3引数**kwargsの順番を間違えるとエラーになるので順番を間違えないようにすること。<br>
注意点は、第2引数*argsと第3引数**kwargsの順番を間違えるとエラーになるので順番を間違えないようにすること。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def food(breakfast, *args, **kwargs):
  def food(breakfast, *args, **kwargs):
     print(breakfast)
     print(breakfast)
250行目: 250行目:
  ('チャーハン', '定食')
  ('チャーハン', '定食')
  {'today' : 'ステーキ', 'tomorrow' : '餃子'}
  {'today' : 'ステーキ', 'tomorrow' : '餃子'}
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


257行目: 257行目:
これにより、Pythonは他の言語では難しいことが行うことができる。<br>
これにより、Pythonは他の言語では難しいことが行うことができる。<br>
<br>
<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def hello():
  def hello():
     print("Hello, Python")
     print("Hello, Python")
268行目: 268行目:
  # 出力
  # 出力
  Hello, Python
  Hello, Python
  </source>
  </syntaxhighlight>
<br>
<br>


278行目: 278行目:
<br>
<br>
外側の関数では、2つの引数を加算して、内側の関数では、2つの引数を加えて10倍して、それをprintで出力している。<br>
外側の関数では、2つの引数を加算して、内側の関数では、2つの引数を加えて10倍して、それをprintで出力している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def OuterFunc(a, b):
  def OuterFunc(a, b):
     def InnerFunc(c, d):
     def InnerFunc(c, d):
286行目: 286行目:
     InValue = InnerFunc(a, b)
     InValue = InnerFunc(a, b)


print(a, b, "OutValue =", OutValue, "InValue =" , InValue)
    print(a, b, "OutValue =", OutValue, "InValue =" , InValue)
  </source>
OuterFunc(3, 4)
# 出力
7
70
  </syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]