Python3基础篇(四)——条件控制
前言:
阅读这篇文章我能学到什么?
这篇文章将带你学习Python3中的条件控制结构。if条件结构似乎已成各类程序语言的标配,如果你有其他语言的基础学习起来将会非常简单。
1 if结构
语法结构:
1 2
| if <Expression>: <CodedBlock>
|
<Expression>
表示表达式,其结果转化成布尔型决定if
分支的执行。<CodeBlock>
是if内的代码块,只有当if的条件表达式<Expression>
为真时代码块才会被执行。python是以缩进来表示代码块的,<CodeBlock>
代码块必须比if
至少有一个空格的缩进。另外,<CodeBlock>
代码块可以由多个语句构成。不要忘记:
号。
流程图:
1 2 3 4 5 6 7 8 9 10
| flowchat Start=>start: 开始 End=>end: 结束 Operation=>operation: <CodeBlock> Condition=>condition: <Expression>?
Start->Condition Condition(yes)->Operation Operation->End Condition(no)->End
|
可以看到if
内的语句<CodeBlock>
在条件表达式<Expression>
结果为真时被执行,假时不执行。
代码示例:
1 2 3 4 5 6 7
| if True: print(1) print("a")
if False: print(2) print("b")
|
运行结果:
2 if——else结构
1 2 3 4
| if <Expression>: <CodeBlock1> else: <CodeBlock2>
|
当<Expression>
条件表达式为真时执行<CodeBlock1>
,为假时执行<CodeBlock2>
。也即if和else下的代码块只能二选一执行,执行哪个取决于条件表达式的布尔结果。
1 2 3 4 5 6 7 8 9 10 11 12
| flowchat Start=>start: 开始 End=>end: 结束 Operation1=>operation: <CodeBlock1> Operation2=>operation: <CodeBlock2> Condition=>condition: <Expression>
Start->Condition Condition(yes)->Operation1 Condition(no)->Operation2 Operation1->End Operation2->End
|
流程图可以清晰看出if-else
的二分支结构特性。
代码示例:
1 2 3 4 5 6 7 8 9
| if True: print(1) else: print(2)
if False: print(3) else: print(4)
|
运行结果:
3 if——elif结构
语法结构:
1 2 3 4
| if <Expression1>: <CodedBlock1> else if <Expression2>: <CodedBlock1>
|
当<Expression1>
条件表达式1为真时执行<CodeBlock1>
代码块1,为假时继续判断<Expression2>
条件表达式2。若表达式2为真则执行<CodeBlock2>
代码块2,为假则既不执行代码块1也不执行代码块2,程序将往后运行。需要 ==注意== 的是当表达式1和2都为真时,有序判断有先后顺序,会先判断表达式1也将执行代码块1,执行完代码块1后就结束了这个if——elif
结构的处理。只有在表达式1为假的情况下才会判断表达式2。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| flowchat Start=>start: 开始 End=>end: 结束 Condition1=>condition: <Expression1> Condition2=>condition: <Expression2> Operation1=>operation: <CodeBlock1> Operation2=>operation: <CodeBlock2>
Start->Condition1 Condition1(yes)->Operation1 Condition1(no)->Condition2 Operation1->End Condition2(yes)->Operation2 Condition2(no)->End Operation2->End
|
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| if True: print(1) elif False: print(2)
if False: print(1) elif True: print(2)
if False: print(1) elif False: print(2)
if True: print(1) elif True: print(2)
|
运行结果:
4 if——elif——else结构
语法结构:
1 2 3 4 5 6
| if <Expression1>: <CodedBlock1> elif <Expression2>: <CodedBlock2> else: <CodedBlock3>
|
与if——elif
区别在于,当<Expression1>
和<Expression2>
都为假时将执行<CodeBlock3>
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| flowchat Start=>start: 开始 End=>end: 结束 Condition1=>condition: <Expression1> Condition2=>condition: <Expression2> Operation1=>operation: <CodeBlock1> Operation2=>operation: <CodeBlock2> Operation3=>operation: <CodeBlock3>
Start->Condition1 Condition1(yes)->Operation1 Condition1(no)->Condition2 Operation1->End Condition2(yes)->Operation2 Condition2(no)->Operation3 Operation3->End Operation2->End
|
代码示例:
1 2 3 4 5 6
| if False: print(1) elif False: print(2) else: print(3)
|
运行结果:
5 if的嵌套结构
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| if True: print(0) elif False: print(0) elif False: print(0) elif False: print(0) else: print(0)
if True: if True: print(1) else: print(2) else: if True: print(3) else: print(4)
|
输出结果:
if
条件分支可以水平嵌套和垂直嵌套,其实这两种写法是可以互相转化的。