当前位置: 首页 > news >正文

python基础专栏13-python基础篇-控制结构

程序在运行过程中,有三种运行控制结构-顺序结构、选择结构和循环结构。

顺序结构是最简单的运行模式,按照代码编写顺序,从上到下逐行执行。

选择结构会根据判断条件的结果来决定执行哪个代码块。

循环结构是反复执行一段代码块。

通过这三种控制结构来让我们编写的代码功能更强大。

选择结构

在程序运行过程中,会存在某些代码块需要满足一定条件时才执行的情况,这种情况在程序中,用选择结构进行处理。就是我们常说起或常听说的if选择结构。

单分支

语法格式:

if(条件1):

    可执行代码语句块1

【可执行代码语句块1】只有在【条件1】的值为True的情况下才会执行。

案例代码:

int1=20
if int1>19:
    print("int1的值大于19")

'''
**************执行结果*****************
int1的值大于19
'''

变量int1的值为20,大于19,所以【int1>19】的运算结果为True,满足条件,所以条件后的语句块会被执行。

如果int1的值改为18,那结果又是什么呢?

int1=18
if int1>19:
    print("int1的值大于19")

'''
************执行结果****************
'''

程序执行后,没有任何输出。因为18不大于19,所以条件不满足,if条件内的语句不会被执行。

所以执行结果没有输出任何内容。

如果不满足条件时,我们也希望输出一些内容,这个时候就需要用到下面讲的双分支结构。

双分支

双分支是指在条件满足时,执行一个代码块,不满足时,执行另外一个代码块。

语法格式为:

if 条件1:

        代码块1

else:

        代码块2
age=20
if age>=18:
    print("年龄大于等于18,该同学已成年!")
else:
    print("年龄不到18,该同学还未成年!")

'''
****************执行结果*********************
年龄大于等于18,该同学已成年!
'''


age=16
if age>=18:
    print("年龄大于等于18,该同学已成年!")
else:
    print("年龄不到18,该同学还未成年!")

'''
****************执行结果*********************
年龄不到18,该同学还未成年!
'''

对于双分支结构,两个代码块只会执行其中的一个。

多分支

现实应用当中,也会出现一个条件满足多种情况的案例,这个时候就要用到多分支的语法,

语法格式:

if 条件1:

        语句1

elif 条件2:

        语句2

elif 条件3:

        语句3

else:

        语句

其中elif 时else if的缩写。

# 分数
score=90
if score>=90:
    print("等级:优秀!")
elif score<90 and score>=80:
    print("等级:良好!")
elif score<80 and score>=70:
    print("等级:中等!")
elif score<70 and score>=60:
    print("等级:及格!")
else:
    print("等级:不及格!")
'''
******************执行结果******************
等级:优秀!
'''

多分支结构满足一个条件后,即执行结束,即使后面的条件也满足,也不会再判断执行了。

案例演示:

# 分数
score=90
if score>=90:
    print("等级:优秀!")
# elif score<90 and score>=80:
elif score >= 80:
    print("等级:良好!")
# elif score<80 and score>=70:
elif score >= 70:
    print("等级:中等!")
# elif score<70 and score>=60:
elif score >= 60:
    print("等级:及格!")
else:
    print("等级:不及格!")

'''
******************执行结果****************
等级:优秀!
'''

选择嵌套

选择结构是支持嵌套的,即平常说的if里面套if,也就选择结构内代码块当中也可以存在选择结构的语句块。

age =20
sex="F"
if age>=18:
    if sex=="F":
        print("你已经是成年女性!")
    else:
        print("你已经是成年男性!")
else:
    if sex=="F":
        print("你还是未成年女性!")
    else:
        print("你还是未成年男性!")

'''
********************执行结果********************
你已经是成年女性!
'''

选择结构在实际应用场景中会经常使用,关键大家在学习的过程中要深刻领会选择结构的内涵,以及在python语言当中的语法格式(主要是结构表示中用到的关键字),学会不同组合的使用方式,会让您的编程水平提高一个层次和台阶。

循环结构

循环是指重复执行一段程序代码。

循环可以认为是体现了一种简单的代码封装,和后续的函数、和类有一定的相似性,只不过是只能在实现的地方实现了重复调用。

在python中,提供了两种实现循环的语法结构。

①while条件循环。

语法格式:

while 条件1:

        代码块

当条件1满足时,代码块被重复执行。

演示案例:

int1=1
while int1<10:
    print(int1)
    int1+=1

'''
*****************执行结果*******************
1
2
3
4
5
6
7
8
9
'''

此案例中,循环条件为:int1<10,当变量int1的值小于10时,循环体内的语句会重复执行。

在循环体内,一定要有改变循环条件的语句,比如:int1+=1,每执行一次,此变量增加1,当int1增加到10时,条件不再满足,即循环终止,如果没有的话,则循环条件会一直满足,会进入死循环。

while一般应用的场景是条件循环,而循环次数是不固定的。

②for循环

for循环一般用在固定次数和遍历序列类型的数据结构场景中。

对于序列类型的数据,在处理时,每个元素的处理逻辑都是相同的,所以需要用循环处理,遍历序列,每次取出一个元素,然后进行处理,是一种非常典型的应用场景。

案例代码:

list1=[1,2,3,4,5,6,7,8,9,10]
for i in list1:
    print(str(i)+"的平方为"+str(i**2)) #输出列表种每个元素的平方。

'''
******************执行结果***************************
1的平方为1
2的平方为4
3的平方为9
4的平方为16
5的平方为25
6的平方为36
7的平方为49
8的平方为64
9的平方为81
10的平方为100
'''

循环嵌套

循环嵌套即循环语句块当中存在循环语句,这种情况在现实应用中也非常普遍。

比如九九乘法表的处理。

print("打印输出九九乘法表")
for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"*"+str(i)+"="+str(i*j),end="\t")
    print()

 此循环包括两层循环,外层循环控制行数,内层循环控制每行计算表达式的个数。

大家可以好好分析一下结果,然后理解循环控制的逻辑。

以上就python当中控制结构相关的知识点,控制结构来控制程序执行的逻辑顺序,用来选择和循环结构,能让程序实现更强大的功能。

------------------------------------------

如果对您有所帮助,请关注和支持,您的支持是作者持续创作下去的动力源泉。

相关文章:

  • 3.4 创建共用模块-供其它模块使用
  • 通用Excel表格导出(Map类型数据导出为表格)
  • leetcode刷题 (9.1) 动态规划
  • 【C++】如何理解函数调用中的传值和传址
  • 糖尿病会隐身,这些信号一定要重视
  • 智能驾驶功能软件平台设计规范第五部分:定位功能服务接口
  • 框架阶段六:SpringCloud
  • 《effecttive C++》和一些其他C++开发的东西的学习总结(长期更新)
  • 登录测试用例
  • hadoop笔记——YARN部署
  • 目前全球生物识别市场规模迅速扩张,虹膜识别技术也发展迅猛
  • kafka原理解读
  • Java架构师技能点面试题汇总消息队列面试题
  • ora-00922-error-message文档
  • 1-十八烷基-3-三乙氧基丙基硅烷咪唑溴盐离子液体([ODTIm]Br)修饰Fe3O4磁性纳米颗粒
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 自己简单写的 事件订阅机制
  • 【Leetcode】104. 二叉树的最大深度
  • Asm.js的简单介绍
  • Create React App 使用
  • ES6之路之模块详解
  • Java读取Properties文件的六种方法
  • Java反射-动态类加载和重新加载
  • 百度地图API标注+时间轴组件
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何设计一个微型分布式架构?
  • 写代码的正确姿势
  • 移动端解决方案学习记录
  • 原生js练习题---第五课
  • 最简单的无缝轮播
  • 数据可视化之下发图实践
  • ​用户画像从0到100的构建思路
  • !$boo在php中什么意思,php前戏
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (7)STL算法之交换赋值
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转) Face-Resources
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ... 是什么 ?... 有什么用处?
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /var/spool/postfix/maildrop 下有大量文件
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 蓝桥杯Web真题 ]-布局切换