TypeError: not supported between instances of ‘NoneType’ and ‘int’ が出た時の対応

Pythonプログラミングを試している中で、下記エラーメッセージがでました。

前にも見た事があるエラーですが、その時は未熟者故Google先生に聞いても、一発で分かる様な回答が出てこなかった事から、出てきた回答が何を意味しているのか突き止める事ができず、一から作り直したり、そのコードから撤退したりしていました。

今回は解決で来たので備忘エントリーです。

エラーが出た元のhコードは下記のコードです。

このエラーメッセージを元にGoogle先生に聞いても、「これは〜だから〜を変更すれば良い」的な直接的な回答が出てきません。

しかし、stackoverflow
にこの問題の解に通じる意味が書かれていました。

“The problem isn’t the input. Python will implicitly return None from the valid input function. And there are two different vPopSize variables here ”

どこかでreturnで上手く返っていない様なので見返しました。
と思ったら、5行目でaを書き漏れて返っていませんでした。

が正しい記載です。

ちなみに、下記のコードの”return mx”を削っても

下記のエラーが出ます。

今回は簡単な抜けでしたが、このエラーが出たらreturnが上手く返っているか、を重点にチェックする様にしましょう。