まず、コードを読みましょう。
プログラミングは「こう書けばいい」……ではありません。
『プログラムは魔法でもなんでもなく、人間が現実世界でやっていることを逐一指示されながら処理しているだけの代物である』です。
デバッグも大事です。
コードを読むコツは、『一行レベルで、その行が何をしているのかを考えながら読む』です。
たとえばコメント文にするとか。(その場合はバッグアップも取っておいた方がいいです)
たとえば、今回の場合、
(インデントが無視されているのでもしかしたら違うかもしれませんが)
Python
1def toLowerCase(stringInput):
2 # 引数stringInput が "HELLO" だったら
3 if stringInput == "HELLO":
4 # "hello" を返す
5 return "hello"
6 # そうじゃなくて, "Recursion" なら
7 elif stringInput == "Recursion":
8 # "recursion" を返す
9 return "recursion"
10 # そうじゃなくて, "Good Morning" なら
11 elif stringInput == "Good Morning":
12 # "good morning" を返す
13 return "good morning"
となっていますね。
これを日本語でも英語でもスペイン語でも中国語でも韓国語でもロシア語でもなんでもいいで、
自分が読み書きできる言語で書き下してみましょう。
(疑似コード)
1. もし渡されたデータが"HELLO" なら
1.1. "hello" を返す
2. そうじゃなくて"Recursion" なら
2.1. "recursion"を返す
3. そうじゃなくて"Good Morning" なら
3.1. "good morning" を返す
そして、この疑似コードをもとに、現実世界でシミュレーションしてみましょう。
脳内でもいいです。
実際に、たとえば、
[シチュエーション]
ある人(Aさん)が"HELLO" 等のように大文字と小文字で形成された(= 大文字を含んだ)
単語や熟語を言うので、あなたはそれをすべて小文字で書きましょう。
的なシチュエーションと考えてみてください。
Aさんが『HELLO』と言えば、上記の疑似コードを上から読んで処理していく。
(1) に該当するのでそのまま(1.1) を処理する。
つまり『hello』とする。
Aさんが『Good Morning』と言えば、(1)は該当せずスルー、(2)も該当せずスルー、(3)で該当するので(3.1) を処理。
つまり『good morning』とする。
でも、Aさんが『HeLlo』のように、カタカナだと一致しても大文字・小文字が一致しない場合はどうなるでしょうか。
この場合、というか、プログラミング言語の多くは、大文字と小文字は別物と認識しますから、
『該当なし』となります。
(1), (2), (3) それぞれ満たさないので。
そうなると、何もしない。
でも関数を抜けると戻り値を受け取ろうとするので、『None』とかみたいなわけのわからないものが返ってくるのではないでしょうか。
仮に『HeLlo』とかのようなものはあり得ないとしても、『SLEEPY』とかみたいに、指定外のものが入力されていたらどうなるでしょうか。
これも(1), (2), (3) のいずれも該当しないのでNoneとかになるはずです。
そういう風にロジックを追ってみましょう。
ヒント: 過去解答
[追記1]
※ 修正依頼の方にも書きましたが、ここにも書いておきます。
んー、もしかして、対話型でやっていませんか?
Pythonの場合、2種類のやり方があります。
ソースコードをテキストファイルに書いて pyファイル ( *.py ) として書いて、
$ Python main.py
のように起動するタイプ(名称忘れた……)と
Python.exe を起動して ">>" のところにコードを書いていって、対話するようにやるタイプ(対話型)
です。
このうちの対話型なのかな? と思っているのですが。
もしそうなら、もしかしたら『Enter(キー)とかを押したためにそれが「入力された」と勝手に解釈されて……』とかみたいなのがあり得ますね。