Python理论2 流程控制与分支结构

本文深入讲解Python中的流程控制概念,包括布尔逻辑、比较运算符、布尔运算符、分支结构(if-else-elif)、循环结构(while和for)。通过实例演示了如何使用这些结构来控制程序的流程,同时对比了while循环与for循环的异同。

流程控制

在Python的流程控制的核心在于利用布尔逻辑去控制流程,其中主要包含了3个语句,以if为关键词的if结构,以for为关键词的for循环,以while为关键词的while循环。后文将分别对布尔逻辑、代码块、if结构(分支结构)、for循环、while循环进行介绍。先用一张流程图描述一下流程控制的概念:
流程示意

布尔逻辑

布尔值

TrueFalse
需要注意的有:
(1)首字母大写;
(2)不能作为变量名,

比较运算符

操作符含义
==等于
!=不等于等于
<小于
>大于
<=小于等于
>=大于等于

比较运算符计算结果为布尔值,如下:

>>> 42 == 42
>>> 42 == 99
True
False
>>> 2 != 3
True
>>> 2 != 2
False

这里着重讲一下==和=的区别

  • ==是一个运算符,它的作用是判断其左右两端的值是否相等
  • =是一个赋值符号,它的作用是将等号右边的值赋予左边的变量中,不具备判断左右两边值是否相等的功能。

布尔运算符

包括三个运算符,and,or 以及not,其中and和or作用两个布尔值或表达式之前,not作用于一个布尔值和表达式之间。
用法参见表:

表达式结果
True and TrueTrue
True and FalseFalse
False and TrueFalse
False and FalseFalse
True or TrueTrue
True or FalseTrue
False or TrueTrue
False or FalseFalse
not TrueFalse
not FalseTrue

布尔逻辑表达式

将比较运算符和布尔运算符混合使用即是布尔逻辑表达式,看看例子:

>>> (4 < 5) and (5 < 6)
True
>>> 

运算过程如下:
在这里插入图片描述

分支结构

语法规则

  • 始于缩进(一般为一个Tab)
  • 一个代码块中可以包含其他的代码块
  • 结束于缩进减少为零(对象为本代码块)

还是用代码去理解:

name = 'Mary'
password = 'swordfish'
if name == 'Mary':
    print('Hello Mary')
    if password == 'swordfish':
        print('Access granted.')
    else:
        print('Wrong password.')

这里有三个代码块,第一个if下面的缩进,第二个if下面的缩进以及else下面的缩进。

分支结构

if

语法规则:

  • 关键词if
  • 条件(一个布尔逻辑表达式,计算结果为True或False)
  • 冒号
  • 另起一行,缩进的代码块(这里是if子句)
if condition:
	clause        #if子句

实例:

if name == 'Alice':
    print('Hi, Alice.')

实例流程图如下:
if实例

else

语法规则:

  • 关键词else
  • 冒号
  • 另起一行,缩进的代码块(这里是else子句)
  • 无法独立于if存在
else :
	clause        #if子句

实例如下:

name = 'Bob'
if name == 'Alice':
    print('Hi, Alice.')
else:
    print('Hello, stranger.')

实例流程图如下:
在这里插入图片描述

elif

语法规则:

  • 关键词elif
  • 条件(一个布尔逻辑表达式,计算结果为True或False)
  • 冒号
  • 另起一行,缩进的代码块(这里是elif子句)
  • 无法独立于if存在
elif condition:
	clause        #if子句

实例如下:

name = 'Bob'
age = 5
if name == 'Alice':
    print('Hi, Alice.')
elif age < 12:
    print('You are not Alice, kiddo.')

实例流程图如下:
在这里插入图片描述

if elif else联用及个人心得

  • if 结构中仅if可以独立存在
  • elif 和 else可以和if一起独立存在,也可相互连用
  • 三者使用时缩进相同

实例:

name = 'Bob'
age = 30
if name == 'Alice':
    print('Hi, Alice.')
elif age < 12:
    print('You are not Alice, kiddo.')
else:
    print('You are neither Alice nor a little kid.')

实例流程图:
在这里插入图片描述

while循环

语法

  • 关键词while
  • 条件(一个布尔逻辑表达式,计算结果为True或False)
  • 冒号
  • 另起一行,缩进的代码块(这里是while子句)
 while condition:
 	clause           #while子句

Note:
当while后的条件计算为True时一直循环,循环过程为执行完代码块后又回到代码块的第一行继续执行代码。

代码演示:

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1

执行结果为:

Hello, world.
Hello, world.
Hello, world.
Hello, world.
Hello, world.

代码流程图演示:
在这里插入图片描述

break

当在while循环中使用break时,循环立刻停止。在使用 while True: 循环时很有用,比如应用于输入正确用户名的场景下。

while True:                        
    print('Please type your name.')
    name = input()                  
    if name == 'your name':        
        break                   
print('Thank you!')              

代码流程图如下:
在这里插入图片描述

continue

用于在执行代码块时立即回到循环起点,一般放在循环中间的位置。
如下代码:

while True:
   print('who are you?')
   name=input()
   if name!='Joe':
     continue
   print('Hello,Joe.What is the password?(It is a fish)')
   password=input()
   if password=='swordfish':
     break
print('Access Granted.')

如果你只想执行代码块中一部分且让其达到条件时继续执行可以用continue。

代码流程图如下:
在这里插入图片描述

for循环

语法

  • 关键词for
  • 变量
  • in
  • range( )字符串列表字典,这里跟while循环区别开
  • 冒号
  • 另起一行,缩进的代码块(这里是for子句)
for valuein collection:

代码示意:

print('My name is')
for i in range(5):
    print('Jimmy Five Times (' + str(i) + ')')

执行结果:

My name is
Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)

代码流程图:
在这里插入图片描述

range( )

range( )是一个在for循环中十分重要的内置函数,在这里再讲一下它的特点:

  • 可以传递给他三个整数range(a,b,c)
  • a和b代表它的范围
  • c代表步长
  • a,b,c都可以为负数
  • c的默认值为1
  • a的默认值为0

代码示意:

for i in range(5, -1, -1):
    print(i)

执行结果:

5
4
3
2
1
0

for循环与while循环的异同与个人理解

  • while循环条件是布尔逻辑表达式,其结果是布尔值True或者False
  • for循环是变量在一个范围里
  • for循环也可以用while循环写,不过要在while循环前给变量并将这个变量放在布尔逻辑表达式中,在其代码块中利用迭代器改变变量的值,如下:
print('My name is')
i = 0
while i < 5:
    print('Jimmy Five Times (' + str(i) + ')')
    i = i + 1

对比for循环的例子

导入模块的方法 import

除了嵌入式函数之外,我们还要用到很多标准库中的函数,或者外部模块中的函数,这些函数需要用import来导入模块。

语法

  • import 模块1,模块2,模块3 (当然你也可以只导入一个))
  • form 模块 import 函数

先这样吧,关于布尔值还有一个布尔值可以等于其他值的问题,等更完其他部分有时间再更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值