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

Python分支结构和循环结构

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

一.分支结构

分支结构是根据判断条件结果而选择不同向前路径的运行方式,分支结构分为:单分支,二分支和多分支。

1)单分支结构

单分支结构是分支结构中最简单的一种方式,它的使用方法如下:

if <条件>:<语句块>

单分支结构只需要判断一个条件,根据这个条件是否成立来决定是否执行一段语句。

实例:猜数字

num_in=eval(input("请输入数字:"))
if num_in==59:print("猜对了")
2)二分支

二分支结构是根据条件判断的不同而选择不同执行路径的一种分支结构,它的使用方法如下:

if <条件>:<语句块1>
else:<语句块2>

二分支结构也只需要判断一个条件,根据这个条件来决定执行的语句块,成立执行语句块1,不成立执行语句块2。

实例:猜数字

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
num_in=eval(input("请输入数字:"))
if num_in==59:print("猜对了")
else:print("猜错了")
3)多分支

多分支结构是根据不同条件来选择语句块运行的一种分支结构,它的使用方法如下:

if <条件1>:<语句块1>
elif <条件2>:<语句块2>
......
else:<语句块n>

多分支结构需要判断多个条件,根据判断当前条件是否成立来决定是否执行当前语句块,当所有条件都不成立时,执行else的语句块。

实例:猜数字

num_in=eval(input("请输入数字:"))
if num_in>59:print("数字大了")
elif num_in<59:print("数字小了")
else:print("数字正确")

二.条件判断

1)条件判断操作符

2)条件组合关键字(Python保留字)

三.异常处理

当使用以下实例时

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
num_in=eval(input("请输入数字:"))
print(num_in)

如果不输入数字,而输入字符串,此时会出现如下报错:

请输入数字:abc
Traceback (most recent call last):File "C:\Users\Administrator\Desktop\hello_world.py", line 1, in <module>  #异常发生的代码行数num_in=eval(input("请输入数字:"))File "<string>", line 1, in <module>

此时就需要使用到Python通过的异常处理的相关机制,异常处理有两种非常基本的使用方法,使用保留字try和except,格式如下:

try:<语句块1>
except <异常类型>:<语句块2>

放在try中的语句块1如果出现异常,将会在except中查找相同的异常类型,执行相应的语句块。

如果except后面不跟随异常类型,那么就必须是最后一个except,表示除以上提到的异常类型,其余的异常都采用这个except的语句块。

实例:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
try:num_in=eval(input("请输入数字:"))print(num_in)
except NameError:print("当前输入不是数字")

异常处理的高级用法使用到了保留字try、except、else和finally,格式如下:

try:<语句块1>
except <异常类型>:<语句块2>
else:<语句块3>
finally:<语句块4>

多出来的else语句块在没有发生异常时执行,finally语句块一定执行。

四.循环结构

循环语句分为:遍历循环和无限循环

1)遍历循环

遍历循环指遍历某一个结构形成的循环运行方式,它的使用方法如下:

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

简单说遍历循环是由for in保留字构成的循环结构,它可以从遍历结构中逐一提取元素放到循环变量里。

当遍历结构中的所有元素都放入循环变量,并且都已循环执行之后,那么循环程序退出。

注意:遍历结构不是一种特殊的类型,它可以是range(m,n,k)、字符串、序列等等。

当遍历结构采用range(m,n,k)时,可以称这种遍历循环结构为计数循环,通过range(m,n,k)产生一个数字序列,这个序列包含(n-m)/k个元素,每个元素都是整数。

实例如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> for i in range(5):print(i)
#输出效果如下
0
1
2
3
4
>>> for i in range(1,6,2):print(i)
#输出效果如下
1
3
5

当遍历结构采用字符串时,可以称这种遍历循环结构为字符串遍历循环,循环变量将会遍历字符串的每一个字符。

实例如下:

>>> for i in "Python123":print(i,end=",")
#输出效果如下
P,y,t,h,o,n,1,2,3,

当遍历结构采用列表时,可以称这个遍历结构为列表遍历循环,循环变量将会遍历列表中的每一个元素。

(其他序列也可作为遍历结构)实例如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> for i in [123,"PY",456]:print(i,end=",")
#输出效果如下
123,PY,456,

当变量结构采用文件(标识符)时,可以称这个遍历结构为文件遍历循环,循环变量将会遍历文件的每一行。

一般只要是多个元素组成的数据类型,都可以被采用。

2)无限循环

无限循环是由条件控制的循环运行方式,它的使用方法如下:

while <条件判断>:<语句块>

简单来说,它已经不再是遍历某一个结构,而是根据条件判断来进行循环。

如果这个条件成立,那么下面的语句块就会被执行,执行之后再次判断条件,如果这个条件再次成立,它就会继续再执行下面的语句块,然后再回来判断循环。

所以无限循环是反复执行语句块,直到条件不满足时结束。

实例:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> a=3
>>> while a>0:a-=1print(a)
#输出效果如下

如果不小心写成了死循环,可以使用+退出循环。

3)循环控制保留字break和continue

和其他语言一样,Python通过了两个循环控制保留字break和continue(几乎所有的语言都是这两个)。

break表示结束当前所在循环,continue表示跳过当次循环并不影响循环的继续,它们都可以与for循环和while循环搭配使用。

continue实例:

>>> for c in "PYTHON":if c=="T":continueprint(c,end="")
#输出效果如下
PYHON

break实例:

>>> for c in "PYTHON":if c=="T":breakprint(c,end="")
#输出效果如下
PY

注意:使用break时,注意其所在的循环位置,只跳出break所在的循环。

4)循环的高级用法

循环可以和else搭配使用,else与循环处于同一级,在循环语句之后,使用方法如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
for <循环变量> in <遍历结构>:<语句块1>
else:<语句块2>while <条件>:<语句块1>
else:<语句块2>

无论是for还是while,当循环没有被break保留字退出时(允许存在break),此时执行else的语句块。

简单来讲,else语句块可以作为“正常”完成循环的一种奖励,与异常处理中的else类似。

实例1:

>>> for c in "PYTHON":if c=="T":continueprint(c,end="")
else:print("正常退出")
#输出效果如下
PYHON正常退出

实例2:

>>> for c in "PYTHON":if c=="T":breakprint(c,end="")
else:print("正常退出")
#输出效果如下
PY
尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

相关文章:

Python分支结构和循环结构

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一.分支结构 分支结构是根据判断条件结果而选择不同向前路径的运行方式&#xff0c;分支结构分为&#xff1a;单分支&#xff0c;二分支和多分支。 1&#xff0…...

Unity调用API函数对系统桌面和窗口截图

Unity3D调用WINAPI函数对系统窗口截图 引入WINAPI函数调用WINAPI函数进行截图使用例子 引入WINAPI函数 using System; using System.Collections; using System.Runtime.InteropServices; using System.Drawing;[DllImport("user32.dll")]private static extern Int…...

【问题思考总结】CPU怎么访问磁盘?CPU只有32位,最多只能访问4GB的空间吗?

问题 在学习操作系统的时候发现了这样一个问题&#xff0c;32位的CPU寻址空间只有4GB&#xff0c;难道只有4GB的空间可以使用吗&#xff1f;以此为始&#xff0c;我开始了一些思考。 思考 Q1&#xff1a;首先&#xff0c;我似乎混淆了一个概念&#xff0c;内存和外存&#x…...

UG NX二次开发(C++)-CAM-根据刀具对程序组进行重新分组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在UG NX中创建一个三维模型3、在UG NX/CAM中创建多个加工程序4、采用UG NX二次开发(NXOpen)实现按照刀具分组程序组4.2 创建UI Styler4.1 实现逻辑4.2 生成的代码如下:4.3 测试效果4.…...

Unity如何实现TreeView

前言 最近有一个需求,需要实现一个TreeView的试图显示,开始我一直觉得这么通用的结构,肯定有现成的UI组件或者插件可以使用,结果,找了好久,都没有找到合适的插件,有两个效果差强人意。 最后在回家的路上突然灵光一闪,想到了一种简单的实现方式,什么插件都不用,仅使用…...

Android widget 小部件使用指南强化版

Android widget 小部件使用指南强化版 一、简单UI的小部件二、含集合的小部件三、可配置的小部件四、可控制的小部件五、Android 12 Widget 更新 小部件是主屏幕定制的一个重要方面。您可以将它们视为应用程序最重要的数据和功能的“概览”视图&#xff0c;这些数据和功能可以直…...

Linux下C语言操作网卡的几个代码实例?特别实用

前面写了一篇关于网络相关的文章&#xff1a;如何获取当前可用网口。 《简简单单教你如何用C语言列举当前所有网口&#xff01;》 那么如何使用C语言直接操作网口&#xff1f; 比如读写IP地址、读写MAC地址等。 一、原理 主要通过系统用socket()、ioctl()、实现 int sock…...

noip2011选择旅馆

1.审题&#xff1a;第一个人与第二个人入住的旅馆要求是同色的&#xff1b; 两个人去消费的旅馆并没有要求与入住的旅馆是同色的&#xff08;这点要小心&#xff09; 2.要求记录以下数据&#xff1a; 1&#xff09;a[color]表示当前同为颜色color的旅馆数 2&#xff09;b[co…...

vue造轮子完整指南--npm组件包开发步骤

一、项目包文件的创建和初始化。 1. 新建项目包。 vue create <Project Name> //用于发布npm包的项目文件名 ps:一般选择自定义&#xff0c;然后不需要Vuex和Router&#xff0c;其他选项按自己实际情况选择安装即可。 2.修改原始src文件名、新增组件项目存放文件和修改…...

28 drf-Vue个人向总结-1

文章目录 前后端分离开发展示项目项补充知识开发问题浏览器解决跨域问题 drf 小tips设置资源root目录使用自定义的user表设置资源路径media数据库补充删除表中数据单页面与多页面模式过滤多层自关联后端提交的数据到底是什么jwt token登录设置普通的 token 原理使用流程解析 jw…...

线性代数(七) 矩阵分析

前言 从性线变换我们得出&#xff0c;矩阵和函数是密不可分的。如何用函数的思维来分析矩阵。 矩阵的序列 通过这个定义我们就定义了矩阵序列的收敛性。 研究矩阵序列收敛性的常用方法&#xff0c;是用《常见向量范数和矩阵范数》来研究矩阵序列的极限。 长度是范数的一个特…...

myArm 全新七轴桌面型机械臂

引言 在不断演进的科技世界中&#xff0c;我们始终追求创新和卓越&#xff0c;以满足客户的需求并超越他们的期望。今天&#xff0c;我们很高兴地宣布我们的最新产品——myArm 300 Pi&#xff0c;一款七轴的桌面型机械臂。这款产品的独特之处在于其灵活性和可编程性&#xff0c…...

tomcat乱码解决

解决乱码 1、修改bin\catalina.bat配置文件 修改tomcat的配置文件&#xff0c;找到tomcat路径下的\bin目录下的catalina.bat文件&#xff0c;修改 set “JAVA_OPTS%JAVA_OPTS% %JSSE_OPTS% -Dfile.encodingUTF-8 -Dsun.jnu.encodingUTF-8 ” 2、修改conf\logging.properties配置…...

【Linux】详解线程第三篇——线程同步和生产消费者模型

线程同步和生消模型 前言正式开始再次用黄牛抢票来讲解线程同步的思想通过条件变量来实现线程同步条件变量接口介绍初始化和销毁pthread_cond_waitsignal和broadcast 生产消费者模型三种关系用基本工程师思维再次理解基于生产消费者模型的阻塞队列版本一版本二多生多消 利用RAI…...

k8s 安装

文章目录 k8s 客户端安装k8s集群minikubekindkubeadm 验证 k8s 客户端 用于连接k8s集群&#xff0c;建议下载1.23.x的版本&#xff0c;其他的版本本地运行可能会有莫名其妙的报错 https://dl.k8s.io/release/v1.23.16/bin/linux/amd64/kubectl 安装k8s集群 minikube Minik…...

红队打靶:THE PLANETS: MERCURY打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现和端口扫描 第二步&#xff1a;Web渗透 第三步&#xff1a;获取初步立足点并搜集信息 第四步&#xff1a;软连接劫持sudo提权 总结与思考 写在开头 本篇博客在自己的理解之上根据大佬红队笔记的视频进行打靶&#xff0c;详述了…...

【网络协议】IP

当连接多个异构的局域网形成强烈需求时&#xff0c;用户不满足于仅在一个局域网内进行通信&#xff0c;他们希望通过更高一层协议最终实现异构网络之间的连接。既然需要通过更高一层的协议将多个局域网进行互联&#xff0c;那么这个协议就必须为不同的局域网环境定义统一的寻址…...

Python 布尔类型

布尔值表示两个值之一&#xff1a;True&#xff08;真&#xff09;或False&#xff08;假&#xff09;。 布尔值 在编程中&#xff0c;您经常需要知道一个表达式是否为True或False。 您可以在Python中评估任何表达式&#xff0c;并获得两个答案之一&#xff1a;True或False。…...

iOS设备管理器iMazing比iTunes好用吗?有哪些优势

虽然 iTunes 是 Apple 官方指定的 iPhone 数据备份和管理工具&#xff0c;但是一直以来 iTunes 卡顿的使用体验和过慢的备份过程为不少人诟病。如果大家也被 iTunes 体验不佳的备份和管理功能所困扰&#xff0c;那么简单易用、功能强大的iMazing 能为你解决这个问题。 iMazing…...

Opengl之深度测试

在坐标系统小节中,我们渲染了一个3D箱子,并且运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。在这一节中,我们将会更加深入地讨论这些储存在深度缓冲(或z缓冲(z-buffer))中的深度值(Depth Value),以及它们是如何确定一个片段是处于其它片段后方的。 …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...