0

重複の可能性:
Pythonの3項条件演算子

私はかなり前からJavaでプログラミングしてきましたが、学校でPythonを学んでいて、Javaでブール式を覚えています。

ブール値?(ブール値がtrueの場合、これが発生します):(ブール値がfalseの場合、これが発生します)

Pythonで上記のJavaコードを実行する方法はありますか?そして、上記のステートメントは適切に何と呼ばれていますか?

4

3 に答える 3

10

はい、条件式を使用します:

somevalue if oneexpression else othervalue

例:

>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'

これが導入されたPython2.5より前は、人々はと式の組み合わせを使用してand同様orの結果を達成していました。

expression and truevalue or falsevalue

ただしtruevalue、式自体の一部がブール値を持つものFalse(つまり、0またはNone、または長さ0のシーケンスなど)に評価された場合は、とにかくfalsevalue選択されます。

于 2012-10-01T19:01:39.473 に答える
3

Python:

x if condition else y

例:

val = val() if callable(val) else val
greeting = ("Hi " + name) if name != "" else "Howdy pardner"

これは、3つのオペランドがあるため、「三項演算子」と呼ばれることがよくあります。ただし、「三項演算子」という用語は、3つのオペランドを持つすべての演算に適用されます。ほとんどのプログラミング言語には他の三項演算子がないので、「the」と言うのは明白です。しかし、私はそれをif/else演算子または条件式と呼びます。

Pythonでは、andandor演算子の動作方法により、C派生言語で通常三項演算子を使用する場合にそれらを使用することもできます。

# provide a default value if user doesn't enter one
name = raw_input("What is your name? ") or "Jude"
print "Hey", name, "don't make it bad."

# call x only if x is callable
callable(x) and x()
于 2012-10-01T19:04:17.067 に答える
2

はい、これを使用できます(よりpythonic):

>>> "foo"'if condition else "bar"

または、これ(より一般的ですが、推奨されません):

>>> condition and "foo" or "bar"
于 2012-10-01T19:04:11.670 に答える