「プロのエンジニアとして働いている姿が想像できない」そんなあなたに、ただコードを書くスキルだけではなく、普段プロのエンジニアがどのように考えて行動しているかをお伝えする連載です。問題の作成、システムの構築、ユーザーの質問への回答、サポートを行っています。不安が少しでも拭えればという思いで、連載を開始しました。エンジニア「プロの所作」は14回の連載予定で、本記事は第2回です。第2回は、前後編に渡ってお伝えし、本記事は後編となります。エラーや問題の本質をまず知るPyQは、「自分主体で考えて作る」を実践するのがプロのエンジニアと考えています。エラーや思ったとおりに動かない現象が出たときにまずは本質(原因)を知ることが大事です。前編では「エラーが出る場合」の所作について説明しました。後編は「思ったとおりに動かない場合」の所作についてです。エラーは出ないが思った通りに動かない時プログラムにはエラーにはならないけど、思ったとおりに動かない場合があります。思ったとおりに動かない場合、2種類の可能性があります。実装が悪い場合と、仕様が明確になっていない場合です。自分がやりたいことを明確にする必要があります。作りたいものを深く理解せずに作り始めるとどうしたらいいのか迷子になる場合が多くあるからです。はやりたいことが明確になっているか、以下の順に確認しましょう。作る前にまず何を作るのかをまとめる作業は、「画面」や「機能」を考える場合にも、関数やクラスを書く場合にも有効です。ここからは「関数やクラスを書く場合」を想定して、「思ったとおりに動かない」の解決方法を説明します。仕様をまとめようどういう動作の関数やクラスになるかを明確にするために、書き出すことをオススメします。いう機能を使って、関数やクラスの仕様を書き出せます。0.08))内部の処理でなく関数の入力、出力の意味、「どう問題を解決するものか」を説明することが大切です。仕様に実装を近づけていこう作りたいものが明確になった後は、次はどうやって思い通りに動かない状態から仕様に近づけるかを考えます。大まかに以下の順に考えると良いでしょう。関数やクラスに処理を分割するのは大切です。大きな1つの処理を書こうとすると、変数などの状態が増えてプログラムが難しくなるからです。関数を適切に分離することでテストも書きやすくなります。printデバッグを使って確認できますが、この記事では詳しく説明しません。仕様に近づけていく実装の具体例:スポーツクラブでお客様に適切な会員種別をおすすめするプログラム具体的な例を紹介します。某スポーツクラブでお客様に適切な会員種別をおすすめするプログラムを作りました。お客様には利用時間(フルタイム、ディタイム、ナイト)、学生かどうか、年齢の3種類の情報を入力してもらい、一番価格が安くなる会員種別を返します。以下のプログラムは、70歳で学生ではない、ディタイムだけ利用するお客様にシルバー会員をすすめます。実際は、シルバー会員(8,000円)よりディタイム会員(7,000円)のほうが価格が安いので、ディタイム会員を返す必要があります。現在のプログラムは、期待する結果を返さない状態です。現在のプログラム会員の判定部分は以下のように書かれています。これを正しい動きをするように修正しましょう。今回の問題で考えられることは「一番価格が安くなる会員種別を返す」ことが考慮されていないことです。確認したところ、テストケースに65歳以上のお客様がディタイム利用する場合が考慮されていませんでした。テストケースを追加し、実装を修正します。仕様を読むと一見、学生かどうかシルバーか通常会員かどうかを選んでから、通常簡易位の場合は利用時間を選ぶ仕様に見えます。そのため修正前のコードは、学生とシルバーかどうかを先に判定しています。実は「一番価格が安くなる会員種別を返す」がポイントですので、if文の条件を安い順に判定すればよいのです。実装するまずは、料金が安い順に会員を並べます。学生(6,000円)ディタイム(7,000円)シルバー(8,000円)ナイト(8,500円)フルタイム(10,000円)これにしたがって、コードは以下のように修正しました。'フルタイム(10,000円)'これで正しい結果を返すようになりました。ときも原因を明確にするのが大事です。解決できない場合は、「なんだか動かないんですが。11:58このブログはPyQ開発スタッフが運営しています。技術書1冊分の価格ではじめるPython独学プラットフォームです。Pythonの基本から機械学習・データ分析まで、実際にコードを書きつつブラウザだけで学べます。Pythonお悩み解決で紹介しているような疑問が解決できるプラン(スタンダードプラン)もあるので、プログラミング学習をサポートする先輩プログラマーのような存在が必要になったときには、是非検討してみてくださいね。»Python学習チャンネルPython独学プラットフォームPyQ(パイキュー)の公式ブログです。PyQのリリース情報やカリキュラム紹介だけでなく、プログラミング学習者向けにPythonのQ&A、プログラミング学習tipsなどを配信しています。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。