0

これは codecademy から、Review: Built-In Functions についてです:

def distance_from_zero(n):
    return n
    if type(n) == int or type(n) == float:
        print "The absolute value of the input is ", abs(n)
    else:
        print "Not an integer or float!"

エラー コードは次のとおりです。あなたの関数は、10 ではなく -10 を返したときに -10 で失敗したようです。

どうやって10という数字が出てくるのかな?私のコードの何が問題なのですか?

4

4 に答える 4

2

引数を返すだけなので、絶対値は返されません。したがって、引数として -10 を指定すると、答えが 10 になるはずのときに -10 が吐き出されます。これを解決するには、次の方法で引数の絶対値を返す必要があります。

return abs(n)

ifまた、非数値の絶対値を返そうとしないように、return ステートメントをパーツの最後に移動する必要があります。

def distance_from_zero(n):

    if type(n) == int or type(n) == float:
        print "The absolute value of the input is ", abs(n)
        return abs(n)
    else:
        print "Not an integer or float!"
于 2013-07-12T00:07:57.113 に答える
1

関数が何かを返すと、すぐに壊れます。したがって、関数が行っているのは、渡した数値を返すことだけです。

return abs(n)printステートメントの後にしたいでしょう。

また、タイプを確認するには、 を使用する必要がありますisinstance()。ここで使用するには、次のようにします。

def distance_from_zero(n):
    if isinstance(n, (int, float)):
        n = abs(n)
        print "The absolute value of the input is ", n
        return n
    else:
        print "Not an integer or float!"

Codecademy がコードをチェックする方法は少し「危険」であることを覚えておいてください。Codecademy には組み込みのフォーラム システムがあり、特定の演習について確認できます。type()演習に合格するには、これまでのように の代わりにを使用する必要がある場合がありますisinstance()

于 2013-07-12T00:07:21.203 に答える
0

試してみてください:

def distance_from_zero(n):
    if type(n) == int or type(n) == float: 
        return abs(n)
    else:
        return "Nope"
于 2015-09-03T18:22:07.820 に答える