二、Python语言的控制流程

1、程序的组织结构

1.1 顺序结构:从上到下顺序的执行代码,直到程序结束,没有任何判断和跳转

1.2 选择结构:根据判断条件的布尔值选择性的执行部分代码:if语句

1.3 循环结构:while语句和for-in语句

2、对象的布尔值

2.1 python中一切皆对象,所有对象都有布尔值,可以通过bool()来获取

2.2 以下对象布尔值均为False:False,数值0,None,空字符串,空列表,空元组,空字典,空集合

# 测试对象的布尔值,以下对象均为False,除此之外均为True
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool('')) # 空字符串
print(bool("")) # 空字符串
print(bool([])) # 空列表
print(bool(list())) # 空列表
print(bool(())) # 空元组
print(bool(tuple())) # 空元组
print(bool({})) # 空字典
print(bool(dict())) # 空字典
print(bool(set())) # 空集合

3、选择结构

3.1 需要明确的让程序知道在什么条件下执行什么内容。

3.2 单分支结构

语法结构:

if 条件表达式:
条件执行体
# 单分支结构
money = 100
s = int(input('请输入金额:'))
if money >= s:
money = money - s
print('余额为:', money)
3.3 双分支结构

语法结构:

if 条件表达式:
条件执行体1
else:
条件执行体2
# 双分支结构:键盘输入一个整数,判断是奇数还是偶数
num = int(input('请输入一个整数:'))
if num % 2 == 0:
print(num, '这是一个偶数!')
else:
print(num, '这是一个奇数!!')
3.4 多分支结构

语法结构:

if 条件表达式1:
条件执行体1
elif 条件表达式2:
条件执行体2
elif 条件表达式3:
条件执行体3
else:
条件执行体其他
# 多分支结构:输入一个整数成绩,判断成绩的范围
score = int(input('请输入一个整数成绩:'))
if score>=90 and score<=100:
print('A级')
elif score>=80 and score<=89:
print('B级')
elif 70<=score<=79: #python中可以按照数学格式来写,但是其他语言不行
print('C级')
elif 60<=score<=69:
print('D级')
elif score>=0 and score<=59:
print('E级')
else:
print('成绩输入不正确!!')
3.5 嵌套if

语法结构:

if 条件表达式1:
if 内嵌条件表达式:
内层条件执行体a
else:
内层条件执行体b
else:
条件执行体
# 嵌套if:输入一个金额,进行会员非会员的判断
answer = input('您是会员么?y/n')
money = float(input('输入您的购物金额:'))
if answer == 'y':
if money >= 200:
print('付款金额为:', money * 0.8)
elif money >= 100:
print('付款金额为:', money * 0.9)
else:
print('商品不打折', money)
else: # 非会员
if money >= 200:
print('付款金额为:', money * 0.95)
else:
print('商品不打折', money)
3.6 条件表达式:if...else的简写

语法结构:

x if 判断条件 else y

如果判断条件为True,则返回x,如果判断条件是False,返回y

# 条件表达式:键盘输入两个整数,比较大小
num_a = int(input('请输入第一个整数:'))
num_b = int(input('请输入第二个整数:'))
print(num_a, '大于', num_b) if num_a >= num_b else print(num_a, '小于', num_b) # ==> 3 小于 4
print(str(num_a)+'大于'+str(num_b) if num_a >= num_b else str(num_a)+'小于'+str(num_b)) # ==> 3小于4
3.7 pass语句

① 语句什么都不做,只是一个占位符,用在语法上需要的地方

② 什么时候用:先搭建语法结构,还没想好代码如何写的时候

③ 可以和什么语句一起用:if语句的条件执行体,for-in语句的循环体,定义函数时的函数体

# pass语句练习
answer = input('您是会员么?y/n')
if answer=='y':
pass
else:
pass

4、range()函数

4.1 用于生成一个整数序列

4.2 创建方式

① range(stop):创建一个(0,stop)之间的整数序列,步长为1

② range(start,stop):创建一个(start,stop)之间的整数序列,步长为1

③ range(start,stop,step):创建一个(start,stop)之间的整数序列,步长为step

# range()函数的创建方式
r = range(10)
print(r) # ==>range(0, 10)
print(list(r)) # ==>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 用于查看range对象中的整数序列,默认步长为1
r2 = range(1, 10)
print(list(r2)) # ==>[1, 2, 3, 4, 5, 6, 7, 8, 9]
r3 = range(1, 10, 2)
print(list(r3)) # ==>[1, 3, 5, 7, 9]

4.3 返回值:是一个迭代器对象(没有办法看到具体数据)

4.4 优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才回去审计序列中的相关元素

4.5 使用in与not in判断整数序列中是否存在/不存在指定的整数

# 判断指定元素是否存在range()中
r = range(10)
print(10 in r) # ==>False
print(9 in r) # ==>True
print(11 not in r) # ==>True

5、循环结构

5.1 定义:反复做同一件事情

5.2 循环的分类:while循环,for-in循环

5.3 选择结构if和循环结构while的区别

① if是判断一次,条件为True执行一次

② while是判断N+1次,条件为True执行N次

5.4 while语法结构
while 条件表达式:
条件执行体(循环体)
5.5 while循环:四步循环法

① 初始化变量

② 条件判断

③ 条件执行体(循环体)

④ 改变变量

总之:初始化的变量与条件判断的变量与改变的变量为同一个

# while循环计算0到4之间的累加和
a = 0
sum = 0
while a < 5:
sum = sum + a
a += 1
print('0到4之间的累加和为:', sum) # 计算1-100之间的偶数和
a = 1
sum = 0
while a <= 100:
if not a % 2: # 0 的布尔值为False,求偶数和需要求反 # if a % 2 == 0: # 这是求偶数的和
sum += a
a += 1
print("计算1-100之间的偶数和", sum)
5.6 for-in循环

① in表示从(字符串,序列等)中依次取值,又称为遍历

② for-in遍历的对象必须是可迭代对象

③ 语法结构:

for 自定义的变量 in 可迭代对象:
循环体

④ 循环体内不需要访问自定义变量,可以将自定义变量替换为下划线

# 遍历取出每个对象
for item in 'python':
print(item) # range() 产生一个整数序列,也是可迭代对象
for i in range(10):
print(i) # 如果不需要使用自定义变量,可将自定义变量些为 _
for _ in range(5):
print('python学习') # 这行文字会被输出5遍 # 使用for循环计算1-100之间的偶数和
sum = 0
for item in range(1, 101):
if item % 2 == 0:
sum += item
print('1-100之间的偶数和为:', sum) # 输出100-999之间的水仙花数(比如:153 = 3*3*3 + 5*5*5 + 1*1*1)
for item in range(100, 1000):
ge = item % 10 # 个位
shi = item // 10 % 10 # 十位
bai = item // 100 # 百位
if ge**3 + shi**3 + bai**3 == item:
print('这是一个水仙花', item)

6、流程控制语句break

6.1 用于结束循环结构(直接退出循环),通常与if一起使用

6.2 练习题

# 从键盘录入密码,最多3次,如果正确就结束循环
# 方式一:
for item in range(3):
pwd = input('请输入密码:')
if pwd == '888888':
print('密码正确')
break
else:
print('密码不正确!!')
# 方式二:
a = 0
while a < 3:
pwd = input('请输入密码:')
if pwd == '888888':
print('密码正确')
break
else:
print('密码不正确!!')
a += 1

7、流程控制语句continue

7.1 用于结束当前循环,进入下一次循环,通常和if一起使用

7.2 练习题

# 要求输出1-50之间输出所有5的倍数
for item in range(1, 51):
if item % 5 == 0:
print(item) # 要求使用continue
for item in range(1, 51):
if item % 5 != 0:
continue
print(item)

8、else语句

8.1 使用场景

① if条件不成立的时候使用else

② while和for-in中没有碰到break时执行else

8.2 练习题

# 从键盘录入密码,最多3次,如果正确就结束循环
# 方式一:
for item in range(3):
pwd = input('请输入密码:')
if pwd == '888888':
print('密码正确')
break
else:
print('密码不正确!!')
else:
print('3次机会用完') # 方式二:
a = 0
while a < 3:
pwd = input('请输入密码:')
if pwd == '888888':
print('密码正确')
break
else:
print('密码不正确!!')
a += 1
else:
print('3次机会用完')

9、嵌套循环

9.1 循环结构中又嵌套了另外的完整的循环结构,其中内层循环为外层循环的循环体来执行

9.2 练习题

# 输出三行四列的矩形
for i in range(1, 4): # 表示行数,执行三次,一次是一行
for j in range(1, 5):
print('*', end='\t') # 不换行输出
print() # 换行 # 打印直角三角形
for i in range(1, 10):
for j in range(i):
print('*', end='')
print() # 打印九九乘法表
for i in range(1, 10):
for j in range(i):
print(i, '*', j, '=', i*j, end='\t')
print()

10、二重循环中的break和continue

10.1 二重循环中的break和continue用于控制本层循环

10.2 学习下面的循环输出的结果

# break
for i in range(5):
for j in range(1, 11):
if j % 2 == 0:
break
print(j)
# continue
for i in range(5):
for j in range(1, 11):
if j % 2 == 0:
continue
print(j, end='\t')
print()

  

【Python】语言的控制流程的更多相关文章

  1. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  2. Go语言基础之流程控制

    Go语言基础之流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用额流程控制有if和for,而switch和goto主要是为了简化代 ...

  3. Go语言 数据类型,流程控制

    Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...

  4. Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!

    Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!

  5. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  6. Python分支结构与流程控制

    Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...

  7. python基础之打/解包及运算符与控制流程

    python基础之打/解包及运算符与控制流程 python中的解压缩(即序列类型的打包和解包) python提供了两个设计元祖和其他序列类型的处理的便利,也就是自动打包与自动解包功能,比如: data ...

  8. GO语言学习——Go语言基础之流程控制一

    Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...

  9. Python基础——数据类型、流程控制、常用函数

    Python tutorial :Python网站上的对 Python 语言和系统的基本概念和功能进行的非正式的介绍. 在学习Python之前,我们需要学会在各个平台配置Python的运行环境,下文中 ...

  10. Python语言控制运算的优先级

    Python语言碰上计算式同时出现在一个指令内时,除了括号"(".")"最优外,其余计算优先次序如下: 次方(**). 乘法.除法.求余数(%).求整数(//) ...

随机推荐

  1. Socket:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作

    https://blog.csdn.net/weixin_45932157/article/details/113999801 最近服务器的Socket代理软件经常报这个错误:log:Error On ...

  2. N63050 第十周运维作业

    十九.VPN服务 1.firewalld和最新技术nft实现防火墙功能(65分钟) 2.open-v-p-n介绍和环境准备(48分钟) 3.open-v-p-n实现CA证书(45分钟) 4.open- ...

  3. Vue CLI 2内置框架webpack框架结构解析

    目前Vue已经到3.X版本,相应的Vue CLI也已经是Vue CLI 3版本,创建命令使用vue create,如果要用2.X版的vue init命令,需要全局安装一个桥接工具: npm insta ...

  4. linux安装datax +datax-web踩坑总结

    一丶安装datax 环境:JDK8+     py2.7+ 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz ...

  5. mysql主从故障跳过错误

    mysql主从故障跳过错误1.从库报错 21,22,23,25无法执行Retrieved_Gtid_Set: 265c6c2a-86ca-11ed-b07a-0242ac120002:1-25Exec ...

  6. doskey: windows版 Alias

    1.编辑doskey.bat文件 2.打开注册表寻找.HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor (自行百度) 3.添加d ...

  7. 获取Java运行环境信息

    设备相关信息 获取设备名称 import java.net.InetAddress; import java.net.UnknownHostException; try { InetAddress l ...

  8. 容器 之搭建 jenkins ci 平台

    1 部署 gitlab docker run -d \ --name gitlab \ -p 8443:443 \ -p 80:80 \ -p 9998:22 \ -v $PWD/config:/et ...

  9. Power shell 读取电量,改变屏幕亮度

    1. Get-Wmiobject  -List win32*  # 列出所有win32_信息(基本的BIOS,Battery , Memory, processor) 2.Get-WmiObject ...

  10. 图片上传插件WebUploader的坑

    需要上传图片的一个操作选择了WebUploader这个插件来实现,具体的实现过程如下. js代码: 1.引入js.css文件: <script type="text/javascrip ...