次のコードの場合:
def isString(x):
if type(x)==str:
return True
return False
パラメータに文字列を入力すると、Trueを返した後、Falseも返されないのはなぜですか?私はPythonを初めて使用しますが、forループから外れているためにFalseが返されると想定して混乱していますが、そうではありません。
次のコードの場合:
def isString(x):
if type(x)==str:
return True
return False
パラメータに文字列を入力すると、Trueを返した後、Falseも返されないのはなぜですか?私はPythonを初めて使用しますが、forループから外れているためにFalseが返されると想定して混乱していますが、そうではありません。
答えはどの言語でも同じです。returnステートメントは、関数からの戻りを意味し、オプションの値を返します。戻ることができるのは1回だけです。この場合、条件ステートメントから戻ります。
ところで、そのような型チェックにはis
演算子を使用してください。
if type(x) is str:
return True
しかし、実際には、文字列型のチェックを行うための実際に推奨される方法は次のとおりです。
if isinstance(x, str):
return True
ただし、非常に短いため、このための関数を作成する必要はまったくありません(学習目的を除く)。isinstance(x, str)
さもなければ書いたであろう場所を使うだけですisString(x)
。
ちなみに、コードにはforループはありません
関数が何かを返すとき-何か-それは行われます。このreturn
ステートメントは、関数が終了することを意味します。これ以上の処理は一切ありません。
のタイプがの場合x
、str
関数はを返しますTrue
。ただし、のタイプが、x
でないstr
場合、ifステートメントは入力True
されず、返されません。代わりに、関数はifステートメントの後の次の行、つまりreturn False
-に進み、関数はFalse
return
ステートメントは関数を終了します。戻ると、機能は停止します。