2018年4月3日第四节课

1.与其他编程语言中的 if 语句一样,使用方法如下
if condition:
    expressions
如果 condition 的值为 True,将会执行 expressions 语句的内容,否则将跳过该语句往下执行。

实例
x = 1
y = 2
z = 3
if x < y:
    print('x is less than y')

上述代码中,if 语句的条件为 x < y 为 True, 那么将执行条件内部语句,程序将输出 x is less than y。

注意点
在 python 语言中等号的判断使用 == 而不是 =, 因为后一种是赋值语句。
x = 1
y = 2
z = 3
if x = y:
    print('x is equal to y')

如果这样写的话,是有句法错误的,程序将无法执行。因为在Python中,=作为赋值语句,而非判断语句
修改如下
x = 2
y = 2
z = 0
if x == y:
    print('x is equal to y')
因为 x 和 y 都等于2, 所以将会输出 x is equal to y。

2.f else 语句基本使用

if condition:
    true_expressions
else:
    false_expressions

当 if 判断条件为 True,执行 true_expressions 语句; 如果为 False,将执行 else 的内部的 false_expressions。

实例
x = 1
y = 2
z = 3
if x > y:
    print('x is greater than y')
else:
    print('x is less or equal to y')

在这个例子中,因为 x > y 将会返回 False, 那么将执行 else 的分支内容。输出 x is less or equal to y

x = 4
y = 2
z = 3
if x > y:
    print('x is greater than y')
else:
    print('x is less or equal y')

在这里,因为 condition 条件为 True, 那么将会输出 x is greater than y。

高级主题
对于从其他编程语言转过来的同学一定非常想知道 python 语言中的三目操作符怎么使用,很遗憾的是 python 中并没有类似 condition ? value1 : value2 三目操作符。然后现实中很多情况下我们只需要简单的判断 来确定返回值,但是冗长的 if-else 语句似乎与简单的 python 哲学不一致。别担心,python 可以通过 if-else 的行内表达式完成类似的功能。
var = var1 if condition else var2
可以这么理解上面这段语句,如果 condition 的值为 True, 那么将 var1 的值赋给 var;如果为 False 则将 var2 的值赋给 var。
worked = True
result = 'done' if worked else 'not yet'
print(result)
首先判断如果 work 为 True,那么将 done 字符串赋给 result,否则将 not yet 赋给 result。 结果将输出 done。


3.if elif else 判断

if condition1:
    true1_expressions
elif condition2:
    true2_expressions
elif condtion3:
    true3_expressions
elif ...
    ...
else:
    else_expressions

如果有多个判断条件,那可以通过 elif 语句添加多个判断条件,一旦某个条件为 True,那么将执行对应的 expression。 并在之代码执行完毕后跳出该 if-elif-else 语句块,往下执行。

实例
x = 4
y = 2
z = 3
if x > 1:
    print ('x > 1')
elif x < 1:
    print('x < 1')
else:
    print('x = 1')
print('finish')
因为 x = 4 那么满足 if 的条件,则将输出 x > 1 并且跳出整个 if-elif-else 语句块,那么紧接着输出 finish。 如果将 x = -2 那么将满足 elif x < 1 这个条件,将输出 x <1, finish。

猜你喜欢

转载自my.oschina.net/u/3804884/blog/1790011
今日推荐