普通形式:
if ( condition):
表达式 1
else:
表达式2
举例:
在这里插入代码片
紧凑形式:适用于简单二分支的表达
<表达式1> if <条件> else <表达式2>
举例:
guess = eval(input())
print("猜{}了".format("对" if guess == 45 else "错"))
或者是
guess = eval(input())
print("猜对了" if guess == 45 else "猜错了")
要注意的一点是,if esle的紧凑语句中,对应的是表达式而不是语句。简单理解,语句是由带等号的赋值语句,而表达式是其中的一部分。
举例:
guess = eval(input())
a = guess if guess > 40 else a = 100-guess
这段代码的输出会报错:
File "<ipython-input-7-ddfcb488d1d3>", line 2
a = guess if guess > 40 else a = 100-guess
^
SyntaxError: can't assign to conditional expression
因为在这里,我们让if else对应的是语句,而不是表达式。(可以看到else后面接的是a = 100 - gusess,很明显,这是一个赋值语句)
如果我们对代码进行修改:
guess = eval(input())
a = guess if guess > 40 else 100-guess
print(a)
则可顺利输出。在以上代码中,if else的紧凑语句实际上是:
guess if guess > 40 else 100-guess