オーダーメイドコース
icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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] 未経験からWebエンジニアを目指す方法とは

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の学習サイトも記事にしているので、学習したい方は参考にしてみてください。

 

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバーでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。Wordpressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。

 

小学生がUnityでオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。

 

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

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

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

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