二、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. Git提交代码报错husky > pre-commit,

    拉取了新项目以后,git突然不能用了   报husky > pre-commit, 解决办法:进入你的项目显示隐藏git文件  进入git文件   找到  hooks / pre-commit  ...

  2. elasticsearch 索引数据手动复制注意事项

    一.背景 有一个已经在A机器建立的100+G的es索引数据文件,需要将这份数据文件直接复制到B机器的elasticsearch中 B机器的节点是在一个集群中,有多个数据节点. 没有原始数据,不重新构建 ...

  3. FTCL:Fine-grained Temporal Contrastive Learning for Weakly-supervised Temporal Action Localization概述

    1.针对的问题 现有的方法主要遵循于通过优化视频级分类目标来实现定位的方式,这些方法大多忽略了视频之间丰富的时序对比关系,因此在分类学习和分类-定位自适应的过程中面临着极大的模糊性.(1)在弱监督设置 ...

  4. 1405. 最长快乐字符串 (Medium)

    问题描述 1405. 最长快乐字符串 (Medium) 如果字符串中不含有任何 'aaa', 'bbb' 或 'ccc' 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」. 给你三个整数 a, ...

  5. c++的double转string(转)

    原文地址:https://www.cnblogs.com/finallyliuyu/p/1810071.html c++中double转换成string型(浮点数的格式化)(转)   在日常编程中-- ...

  6. UE4启动顺序

    GameMode PlayerController Actor Level gameMode , playerController控制pawn , 激活默认相机active camera , getP ...

  7. Docker之Nginx保姆级别安装

    Docker之Nginx保姆级别安装: 如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样) 学英语网站项目:自己先保证Redis.N ...

  8. Jmeter使用文档(循环怎么用)

    Jmeter使用文档(循环怎么用) 基础用法 修改语言 Jmeter之界面语言设置 下面使用简体中文的命名进行说明 打开日志 启动后,右上角有个黄色的感叹号图标,点击即可打开即时日志 如果没有看到重启 ...

  9. 错误 : 资产文件&ldquo;\obj\project.assets.json&rdquo;没有&ldquo;.NETCoreApp,Version=v2.0&rdquo;的目标。确保已运行还原,且&ldquo;netcoreapp2.0&rdquo;已包含在项目的 TargetFrameworks 中。

    原因是项目升级了目标框架netcoreapp2.1但是发布配置文件上的目标框架配置项没有更改导致发布错误 将此处修改成需要的版本即可.例如:<TargetFramework>netcore ...

  10. 在Github上搭建个人主页

    最近试着在github上搭建个人主页,没用github给的模板,用的是自己在网上找到那种类似个人主页的模板,到时候直接上传到仓库里就行了 首先先创建仓库,点击右上角的加号,选择New reposito ...