実際に書いてみる!Pythonでyield文を使う方法【初心者向け】

初心者向けにyield文を使う方法について解説しています。yield文は、関数処理を一時停止して戻り値を返すという処理を行います。return文との違いやyield文の書き方を説明。実際にプログラムを書きながら覚えていきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、Pythonでyieldを使う方法を解説します。

同じような処理としてreturn文がありますが、yieldとの違いについても説明しています。実際にプログラムを書きながら解説しているので、自身でも写経するなどして書いてみてください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

Pythonのyield文とは

Pythonのyield文とは、関数の処理を一旦停止して、戻り値を返すという処理を行います。

同じ様な処理に、return文があります。

return文はyield文と異なり、関数の処理を一旦停止せず、全て行った後戻り値を返す処理を行います。

 

Pythonでyieldを使う書き方

文法

def 関数名():
  yield '文字列'

 

解説

1行目のdef 関数名( ):では、関数を定義しています。

defが関数を定義する宣言文です。

今回は、関数名( )という名称の関数名を定義しています。

最後の:はdefで宣言された関数定義の宣言部分の記載が終了したことを意味します。

2行目のyield ‘文字列’では、defで宣言された関数の具体的な処理ブロックが記載されています。

今回は、’文字列’を戻り値として返して、処理を一旦停止するという処理を行っています。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

Pythonでyieldを使って実際に書いてみよう

ソースコード

def techacademy():
  yield '短期集中プログラミング'
  yield 'Pythonで機械学習エンジニアを目指す'
  yield '未経験転職実績の実力'
school= techacademy()
print school().next()
print school().next()
print school().next()

 

表示結果

短期集中プログラミング
Pythonで機械学習エンジニアを目指す
未経験転職実績の実力

 

解説

1行目のdef techacademy( ):では、techacademy( )という関数を宣言(def)しています。

2行目のyield ‘短期集中プログラミング’では、 ‘短期集中プログラミング’という文字列を値として返して処理を停止します。

3行目のyield ‘Pythonで機械学習エンジニアを目指す’では、 ‘Pythonで機械学習エンジニアを目指す’という文字列を値として返して処理を停止します。

4行目のyield ‘未経験転職実績の実力’では、 ‘未経験転職実績の実力’という文字列を値として返して処理を停止します。

5行目のschool= techacademy( )では、techacademy関数をschool変数に代入します。

6-8行目のprint school.next( )では、それぞれ6-8行目のyield処理をを呼び出しています。

しかし、yieldが値を返すため、一度の呼び出しで、1つのyieldの値が帰った後、一旦処理を停止します。

そのため、呼び出す際に、.next( )を記載することで、次の処理へ続けることができ、結果的に表示結果のような表示になります。

 

今回は、Pythonでyieldを使う方法を解説しました。

入門向けPythonの学習サイトも記事にしているので、学習したい方は参考にしてみてください。

 

また、オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

独学に限界を感じている方はぜひご覧ください。