前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Python3.8.1 の文字列 string を受け取り、同じ文字列を小文字で返す、toLowerCase という関数を作成過程においてなぜか一番下にNoneが表示されてしまいます。 コードは下に書いてあるとおり3つしかないのですが、なぜNoneが表示されるか全くわかりません。
エラーメッセージ ```hello recursion good morning None ### 該当のソースコード ```python def toLowerCase(stringInput): if stringInput == "HELLO": return "hello" elif stringInput == "Recursion": return "recursion" elif stringInput == "Good Morning": return "good morning" 出力方法 print(toLowerCase("HELLO")) print(toLowerCase("Recursion")) print(toLowerCase("Good Morning")) 出力結果 hello recursion good morning None
試したこと
return をせずにprintだけで試したのですが、同様にnoneが表示されてしまいまいした。
補足情報(FW/ツールのバージョンなど)
現在pythonの3.8.1を使用しています
コードは"<code>"または"<コード>"のボタンを押して出てくるヤツの『中に』書きましょう。
今のままではインデントが無視されて読みづらいです。
また、本当にコードはこれだけでしょうか?
少なくともこれだけでは動きません。
関数定義はあくまで定義で、動かしてはいません。
もしかしたら提示されている部分『以外』が原因の可能性もありますよ?
たとえばどのように呼び出しているかで違うとか。
返信ありがとうございます。コードを記載する欄を間違えてしまいすみません。ご指摘ありがとうございます。 
コードはこれだけです。実行した結果 hello, recursion, good morning は問題なく出力されるのですが、なぜか後にNoneが出力されてしまいます。print(toLowerCase())で呼び出しています。
> コードを記載する欄を間違えてしまいすみません。
編集はできるはずなので、編集しましょう。
> print(toLowerCase())で呼び出しています。
じゃあ、質問にあるコードだけじゃないですね。
問題がある部分だけを提示するのではなく、『すべて』提示しましょう。
仮に呼び出し部とかも省くなら『適切に』提示しましょう。
初心者のうちは情報を自分で勝手に省くのはやめましょう。
少なくとも質問にあるコードだと、そもそも動きません。
関数定義はあくまで定義です。
呼び出して初めて意味を持ちます。
今の状態は『自分で料理してみました。ですがなぜか甘いです。砂糖は使っていないのですが』ぐらいのあいまいな質問です。
どういう料理なのか、もしかしたら砂糖以外の、玉ねぎとかの甘さがにじみ出ているのかもしれないし、
『味覚を感じる部分がおかしくなっている』とかのような味見する側の問題かもしれないし、
もしかしたら塩のつもりで砂糖を入れてしまっているとか。
いろんな可能性があります。
たとえば、『こういう手順で、こういう材料で作りました』とやるだけでも『あー、砂糖と塩間違ってそう……』とか、『もしかして(体の不調とかで)味覚が変になっているのでは?』と可能性を潰せます。
まずは他人が再現できるように質問しましょう。
"<code>"のやつは確認しました。
ですが、関数定義が抜けていますよ。( オリジナルだと"def toLowerCase(stringInput):"の部分 )
んー、もしかしてファイルに書くタイプじゃなくて、Python.exeを直接起動して動かすタイプでしょうか。
少なくとも、今提示されているもの(関数定義の"def...")は付け忘れだとして考えても、
Paiza IO で試してみてもNoneが表示されることはありませんね。
何か別のことをしていませんか?
たとえば対話型(直接Python.exeを起動してやるやつ)で最後にEnterを押したとか。
Pythonはインデントがモノを言う言語なので、ちゃんと書いてください。
今のままではそもそもエラーになります。(IndentationError)
・質問のコードにはエラーがあるので修正してください。
・こちらで修正したものを実行しましたが問題は再現しませんでした。質問者さんの実行環境は何でしょうか?
「if stringInput == "HELLO":」
の行のインデントは、2行下の
「elif stringInput == "Recursion":」
と同じじゃないといけないはず
そうしないと、質問とは別のエラーが出ます
質問者さんが実際に実行してるコードの通りに書いてください
質問者さんは、Pythonのコードをどのようにして実行しているのでしょうか?
できるだけ詳しく具体的に書いてくださると、状況がわかりやすくなります
ちなみに、
def toLowerCase(...
の関数定義(インデントは直した)と、それに続けて
print(toLowerCase("HELLO"))
print(toLowerCase("Recursion"))
print(toLowerCase("Good Morning"))
を、全部一つのテキストファイル (ファイル名は tttest.py) に書いて、Macのターミナルで
python tttest.py
を実行しても、
hello
recursion
good morning
と表示されるだけで、「None」とは表示されませんでした