0

プログラムの動作をコメントと一致させる Python コードをボックスに入力します。コードに他の変更を加えたり、括弧 " ( )" の外側にコードを追加したりすることはできません。

def bypass_line(age, has_acces_card):
''' (int, bool) -> bool
Return True if and only if the person's age is greater than 50 or
they have a access card as indicated by has_access_card.
'''


return (                    )

これは私がやっている練習問題です。そして、私はジレンマに陥っています。コードの書き方を知っています...

つまり:

def bypass_line(age, has_vip):
    if age >70 or has_vip =="yes":
        return True
    return False

しかし、() 内に 1 行のコードを記述して、質問に答えるにはどうすればよいでしょうか?

4

3 に答える 3

3

if式はすでにブール値になっています。またはのいずれTrueFalseです。あなたはそれを直接返すことができます:

return age > 70 or has_vip == "yes"

これは基本的にifテスト対象です。式を取得し、 に渡して、またはbool()のいずれかであるかどうかを確認します。比較演算子 ( and ) 自体は既にorを返しているため、ここでは必要ありません。TrueFalsebool()>==TrueFalse

>>> age = 60
>>> age > 70
False
>>> age = 80
>>> age > 70
True
于 2013-11-02T16:00:21.983 に答える
2

このような:

def bypass_line(age, has_acces_card):
    return age > 50 or has_acces_card == "yes"

これは基本的に、if ステートメントによって評価される式自体を返しています。式は既にif ステートメントでTrueorのいずれかを返すため、ここでも同じことを行います。False

于 2013-11-02T15:59:41.683 に答える
0

bypass_line 関数内で、簡単に書くことができます

return age > 50 or has_acces_card == "yes"

私はどちらかというと C++ 派なので、コードをこのように整理することを好みます。より明確に考えるのに役立ちます。

return (age > 50) or (has_acces_card == "yes")

いずれにせよ、コードは単に人がどちらかをチェックします。

  • 年齢が50歳以上
  • アクセスカードを持っている

どちらかが true の場合 (つまり) or、関数は を返しますTrue。それ以外の場合は、false を返します。

ロジックはifステートメントとまったく同じです。代わりに結果のTrueorFalsereturnステートメントで使用されているだけです (同じ式があり、結果が他の場所で使用されているだけです)。printその(または実際には任意の)式を、変数の定義など、関数の引数としてどこでも使用できます...ロジックは常に同じです。

于 2013-11-03T01:46:39.410 に答える