Python 流程控制结构(1)

# 在Python主要分为3大流程结构:顺序结构、分支结构、循环结构

Python顺序结构:从头到尾依次执行每一条 , 不需要判断

Python分支结构:程序会拐弯,有选择性的执行代码 ,到某个节点后,会根据一次判断结果来决定之后走哪一个分支

Python循环结构:程序会杀回马枪,不断地重复执行同一段代码 , 循环结构有一个循环体,循环体是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。

控制语句 ,

1:break 跳出并结束当前整个循环,执行循环后的语句

就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了
break 语句提前终止了循环。

2: continue 结束当次循环,继续执行后续次数循环

仍然以在操作跑步为例,原计划跑 10 圈,但当跑到 2
圈半的时候突然接到一个电话,此时停止了跑步,当挂断电话后,并没有继续跑剩下的半圈,而是直接从第 3 圈开始跑。

顺序结构: 没有判断

分支结构:布尔表达式的真值,用关键字if。else,elif来实现

单分结构:if 布尔表达式:当布尔表达式为真的时候执行

age=90

if age>30 :
    print('nianjdale')  #if为真,返回结果true,不影响后面的语句执行
print('niaj1')

if age>130 :
    print('nianjdale')  #if为假,不返回结果
print('niaj2')

二分支 if :else : 当表达式为真的时候执行if语句后面的语句,否则执行else后面的语句

可以组合结构

方式1:松散结构

meagge='学习了'
money=100
if meagge=='学习了':
    if money>50:
        print('hjaole')
    print('可以吃饭了')
else:
    print('buneng chif ')

方式2:紧凑方式 表达式1> if <条件> else <表达式2>

如果条件为真,则会返回表达式1的值,如果条件为假,则会返回表达式2的值。

在这里插入图片描述

mes='已经学习'
result='可以吃饭了' if mes=='已经学习le' else 'buOK' 
print(result)

多分结构:if 布尔表达式:elif 布尔表达式:else: 当if语句和elif语句后面的布尔表达式为真的时候就执行与之对应的语句,否则执行else后面的语句

注意多条件之间的包含关系 注意变量取值范围的覆盖

在这里插入图片描述

score=90
if score>100:
    print('OK')
elif 80<score>99:
    print('BU ok')
elif score==90:
    print('A')
else:
    print('B')

循环结构 用 while while else循环语句 for for…else…

循环结构必须有判断条件的修改,以达到跳出循环,避免死循环也是需要注意的

符合判断条件,循环主体语句,修改循环语句,继续判断,不符合判断,直接输出结果

sum=0
num=1
while num<100: #循环结束判断
    sum+=num;  #循环体
    num+=1   #修改循环条件
print('a到100所有数字的和为:%d'%(sum))

符合判断条件,循环主体语句,修改循环语句,继续判断,不符合判断,则执行else语句

在这里插入图片描述

num=1
while num<100: #循环结束判断
    sum+=num;  #循环体
    num+=1   #修改循环条件
else:  #独立的语句块。循环结束后的语句
    
    print('a到100所有数字的和为:%d'%(sum))

for 循环变量 in 遍历结构(计数循环 字符串遍历循环 列表循环 文件循环)

用来进行元素遍历的,即for循环的结束条件就是可迭代对象的所有元素都遍历完毕,for循环的循环次数也是由可迭代对象的元素个数决定的,in表达从(字符串、序列等)中依次取值,又称为遍历

语法结构: 从遍历结构中逐一提取元素,放在循环变量中

for <循环变量> in <遍历结构> :

<语句块>

nums=[1,2,6,7]
for i in nums:
    print(i)

For循环语句是按照元素的下标进行取数,并不会因为在循环过程中添加元素或者删除元素而所影响,同时由于对列表进行增删元素之后,其他元素会进行移动(即其他元素的下标会发生变化)

data = [1,1,1,2,1,2,1,1]
for num in data:
    if num ==1:
        data.remove(num)
    print(data)

for k in range(10):
    print(k)

for…else…else…语句与循环结构 循环遍历输出,不影响后面的else 语句执行

for k in range(10):
    print(k)
else:
    print('PASS')

for c in "python": #循环语句部分
     print(c)
else:  #循环语句结束后的语句
     print('FALSE')

值得注意的是,如果在循环中,不进行循环满足的条件就可能会出现死循环,一直循环下去,所以需要循环跳转关键字语句进行满足条件的跳转,避免死循环出现问题

- break跳出并结束当前整个循环,执行循环后的语句

break 语句可以跳出 for 和 while 的循环体 如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不行。

- break仅跳出当前最内层循环

for i in range(1, 11):
    if i == 5:
        print("满足条件中途退出语句执行,也不会继续执行下面的语句,满足条件是:"+str(i))
        break  #如果不用这个,满足条件后,还是会继续执行下面的语句else
else:
    print("循环正常结束")

n = 0 
while n<10:
    n+=1
    if n == 5:
        # print("满足条件中途退出语句执行,也不会继续执行下面的语句,满足条件是:"+str(n))
        break #没有遇到break时执行else
else:
    print("循环结束了")
#代码效果:无任何输出

- continue结束当次循环,继续执行后续次数循环

continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环

for item in range(1,31):
    if item%5:
        continue #满足条件结束当次循环,继续执行后续次数循环 ,Else 依然继续执行
    else:
        print("FALSE A")
        

for 中使用 continue

for i in 'Python':
    if i == 'h':
        continue # 满足条件,结束当次循环,继续执行后续语句,如果不用的话
    print(i)

不进行第三次输出

i = 0
while i < 5:
    i = i + 1
    if i == 3:
        print(i)
        # continue  #如果不加的话,满足条件还是会继续执行循环,继续输出
    print(f'第{i}次循环')
'''
第1次循环
第2次循环
第4次循环
第5次循环
'''

- break和continue可以与for和while循环搭配使用

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/288715.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【损失函数】Cross Entropy Loss 交叉熵损失

1、介绍 主页介绍的几种损失函数都是适用于回归问题损失函数&#xff0c;对于分类问题&#xff0c;最常用的损失函数是交叉熵损失函数 Cross Entropy Loss。它用于测量两个概率分布之间的差异&#xff0c;通常用于评估分类模型的性能。 2、公式 对于二分类问题&#xff0c;交…

DolphinScheduler实际应用

前言 最近公司新启动了一个项目&#xff0c;然后领导想用一下新技术&#xff0c;并且为公司提供多个大数据调度解决方案&#xff0c;我呢就根据领导要求调研了下当前的开源调度工具&#xff0c;最终决定采用DolphinScheduler&#xff0c; 因此研究了一下DolphinScheduler &…

基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码

基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于头脑风暴优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

QProgressDialog用法及结合QThread用法,四种线程使用

1 QProgressDialog概述 QProgressDialog类提供耗时操作的进度条。 进度对话框用于向用户指示操作将花费多长时间&#xff0c;并演示应用程序没有冻结。此外&#xff0c;QPorgressDialog还可以给用户一个中止操作的机会。 进度对话框的一个常见问题是很难知道何时使用它们;操作…

ASP.NET Core基础之图片文件(一)-WebApi访问静态图片

阅读本文你的收获&#xff1a; 学会在WebApi项目中访问静态图片了解静态文件中间件UseStaticFiles的用法 系统中免不了要去处理图片文件&#xff0c;比如上传商品的图片、显示商品的图片&#xff0c;访问系统中的图片等等&#xff0c;根据微软官网描述&#xff1a; 静态文件&a…

阿里巴巴开源异构数据源离线/全量/增量同步工具 - DataX

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

android——自定义TextView

效果展示&#xff1a; 代码解析&#xff1a; 1、首先设置自定义属性&#xff08;res/values下新建一个attrs.xml文件&#xff09; <?xml version"1.0" encoding"utf-8"?> <resources><!-- name 自定义view的名字 CustomTextView--&…

假期归来必看!2023年9月份,爆款论文总结,了解最新学术进展!

以下文章来源于AINLPer &#xff0c;作者ShuYini 十一假期结束了&#xff0c;十月基本上算是过了一半了&#xff0c;小伙伴们收收心准备开始学习工作吧。按照惯例&#xff0c;月初继续带到家盘一下上个月(九月份)的热点论文。本月论文主要分为大模型微调、大模型发布、大模型应…

jmeter线程组

特点&#xff1a;模拟用户&#xff0c;支持多用户操作&#xff1b;可以串行也可以并行 分类&#xff1a; setup线程组&#xff1a;初始化 类似于 unittest中的setupclass 普通线程组&#xff1a;字面意思 teardown线程组&#xff1a;环境恢复&#xff0c;后置处理

泰国Cafe Racer卖到日本去了还限量150台?

GPX推出日本限定 GTM250R Cafe Racer&#xff0c;复古小车卖到日本去了&#xff0c;限量150台&#xff0c;不得不说这台小车还是挺有味道的。现代的复古风格摩托车也是永远都不会落伍&#xff0c;即使没有什么品牌背书&#xff0c;喜欢这种车型的人&#xff0c;对于配置动力都不…

Uniapp使用wx.getFuzzyLocation()方法,没有超过日调用次数,报错:“此key每日调用已达到上限”

前言&#xff1a; 最近在进行一个小程序项目开发的时候&#xff0c;使用wx.getFuzzyLocation()方法&#xff0c;没有超过日调用次数&#xff0c;但是却出现了报错&#xff1a;“此key每日调用已达到上限”。 解决方案&#xff1a; 打开腾讯位置服务 - 立足生态&#xff0c;连…

学习Go语言Web框架Gee总结--http.Handler(一)

学习Go语言Web框架Gee总结--http.Handler http-base/go.modhttp-base/main.gohttp-base/gee/gee.gohttp-base/gee/go.mod 网站学习来源&#xff1a;Gee 代码目录结构&#xff1a; http-base/go.mod //指定当前模块的名称为 "example" module example//指定当前模…

Python入门学习篇(十七)——封装、继承、多态

1 封装 1.1 理解 属性和方法书写到类里面的操作即为封装 封装可以理解成私有化属性和私有化方法1.2 示例代码 class Person():p_num 0 # 用于统计数量def __init__(self, name, age, sex, job):# __name为私有化属性self.__name nameself.age ageself.sex sexself.job …

一种可扩展的多属性可控文本生成即插即用方法

《An extensible plug-and-play method for multi-aspect controllable text generation》论文解读 文章的主要工作 &#xff08;1&#xff09;提出了一种可扩展的即插即用方法&#xff0c;PROMPT GATING&#xff0c;用于多方面可控文本生成&#xff0c;它能够通过简单地连接…

引导和服务

一、Linux操作系统引导过程 1、引导过程总览图 2、引导过程的详细步骤 1.开机自检&#xff08;BIOS&#xff09; 服务器主机开机以后&#xff0c;将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测&#xff0c;检测成功后根据预设的启动顺序移交系统控制权&a…

【MySQL】数据库之主从复制和读写分离

目录 一、什么是读写分离&#xff1f; 二、为甚要读写分离&#xff1f; 三、什么时候需要读写分离&#xff1f; 四、主从复制与读写分离 五、MySQL支持的二进制日志格式 六、主从复制的工作原理 七、MySQL读写分离的原理 八、MySQL读写分离的方式有哪些 九、实验一&am…

Windows 7 虚拟机的安装以及解决安装VMVMware tools问题

1.Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 参考&#xff1a;Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 注意&#xff1a;下载官方补丁&#xff1a;Microsoft Update Catalog在智慧联想浏览器中打不开&#xff0c;要在火狐中才能打开下载。 2.win7如…

Navicat(数据库可视化软件)安装教程以及连接MYSQL

Navicat安装教程以及连接MYSQL Navicat&#xff08;数据库可视化软件&#xff09;安装流程安装MySQLnavicat连接mysql数据库 Navicat&#xff08;数据库可视化软件&#xff09; Navicat 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具&#xff0c;我们可以在自己的计算机…

【HarmonyOS开发】共享包HAR和HSP的创建和使用以及三方库的发布

OpenHarmony提供了两种共享包&#xff0c;HAR&#xff08;Harmony Archive&#xff09;静态共享包&#xff0c;和HSP&#xff08;Harmony Shared Package&#xff09;动态共享包。 HAR与HSP都是为了实现代码和资源的共享&#xff0c;都可以包含代码、C库、资源和配置文件&…

Windows可以ping通ubuntu,但ubuntu无法ping通windows

使用了NAT网卡和桥接网卡&#xff0c;电脑连了WiFi&#xff0c;桥接网卡桥接到WLAN上&#xff0c;Windows可以ping通Ubuntu但反过来不行&#xff01; 1.可能是防火墙的问题&#xff0c;按照如下设置&#xff0c;无果 考虑是不是使用了两个网卡冲突了&#xff0c;取消NAT的链接 …