Python短语'if-else'的陈述

icn*_*icn 24 python if-statement

是否有以下的Python版本if- elseC++中的语句或类似的语句如下:

  int t = 0;
  int m = t==0?100:5;
Run Code Online (Sandbox Code Playgroud)

Fil*_*efp 49

m = 100 if t == 0 else 5 # Requires Python version >= 2.5
m = (5, 100)[t == 0]     # Or [5, 7][t == 0]
Run Code Online (Sandbox Code Playgroud)

以上两行都会产生相同的结果.

第一行使用了Python版本的" 三元运算符 ",从版本2.5开始,虽然Python文档将其称为Conditional Expressions.

第二行是一个小的黑客在许多提供内联的功能(所有的重要)的方式相当于?:在许多其他语言(如发现ÇC++).


Python的文档- 5.11.条件表达式


bob*_*mcr 14

您指的构造称为三元运算符.Python有一个版本(从2.5版本开始),如下所示:

x if a > b else y
Run Code Online (Sandbox Code Playgroud)


Dom*_*ger 7

t = 0
if t == 0:
  m = 100
else:
  m = 5
Run Code Online (Sandbox Code Playgroud)

美丽胜过丑陋.
显式优于隐式.
简单比复杂更好.

来自PEP 20.

或者,如果你真的,真的必须(在Python> = 2.5):

t = 0
m = 100 if t == 0 else 5
Run Code Online (Sandbox Code Playgroud)