0

次のコードの場合:

def isString(x):
  if type(x)==str:
    return True
  return False

パラメータに文字列を入力すると、Trueを返した後、Falseも返されないのはなぜですか?私はPythonを初めて使用しますが、forループから外れているためにFalseが返されると想定して混乱していますが、そうではありません。

4

3 に答える 3

2

答えはどの言語でも同じです。returnステートメントは、関数からの戻りを意味し、オプションの値を返します。戻ることができるのは1回だけです。この場合、条件ステートメントから戻ります。

ところで、そのような型チェックにはis演算子を使用してください。

if type(x) is str:
    return True

しかし、実際には、文字列型のチェックを行うための実際に推奨される方法は次のとおりです。

if isinstance(x, str):
    return True

ただし、非常に短いため、このための関数を作成する必要はまったくありません(学習目的を除く)。isinstance(x, str)さもなければ書いたであろう場所を使うだけですisString(x)

于 2012-12-10T23:44:56.933 に答える
1

ちなみに、コードにはforループはありません

関数が何かを返すとき-何か-それは行われます。このreturnステートメントは、関数が終了することを意味します。これ以上の処理は一切ありません。

のタイプがの場合xstr関数はを返しますTrue。ただし、のタイプが、xでないstr場合、ifステートメントは入力Trueされず、返されません。代わりに、関数はifステートメントの後の次の行、つまりreturn False-に進み、関数はFalse

于 2012-12-10T23:42:05.400 に答える
1

returnステートメントは関数を終了します。戻ると、機能は停止します。

于 2012-12-10T23:42:24.090 に答える