热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python分支结构和循环结构

一.分支结构分支结构是根据判断条件结果而选择不同向前路径的运行方式,分支结构分为:单分支,二分支和多分支。1)单分支结构单分支结构是分支结构中最简单的一种方式,它的使用方法如下:i

一.分支结构

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

1)单分支结构

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

if <条件>:
<语句块>

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

实例1:猜数字

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

2)二分支

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

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

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

实例2:猜数字

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

3)多分支

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

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

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

实例3:猜数字

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

二.条件判断

1)条件判断操作符
《Python分支结构和循环结构》
2)条件组合关键字(Python保留字)
《Python分支结构和循环结构》

三.异常处理

当使用以下实例时

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 "", line 1, in <module>
NameError: name 'abc' is not defined  #异常类型和异常内容提示

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

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

放在try中的语句块1如果出现异常,将会在except中查找相同的异常类型,执行相应的语句块。如果except后面不跟随异常类型,那么就必须是最后一个except,表示除以上提到的异常类型,其余的异常都采用这个except的语句块。

实例:

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

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

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

2)无限循环

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

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

简单来说,它已经不再是遍历某一个结构,而是根据条件判断来进行循环。如果这个条件成立,那么下面的语句块就会被执行,执行之后再次判断条件,如果这个条件再次成立,它就会继续再执行下面的语句块,然后再回来判断循环。所以无限循环是反复执行语句块,直到条件不满足时结束。

实例:

>>> a=3
>>> while a>0:
a-=1
print(a)
#输出效果如下
2
1
0

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

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

和其他语言一样,Python通过了两个循环控制保留字break和continue(几乎所有的语言都是这两个)。break表示结束当前所在循环,continue表示跳过当次循环并不影响循环的继续,它们都可以与for循环和while循环搭配使用。

continue实例:

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

break实例:

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

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

4)循环的高级用法

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

for <循环变量> in <遍历结构>:
<语句块1>
else:
<语句块2>
while <条件>:
<语句块1>
else:
<语句块2>

无论是for还是while,当循环没有被break保留字退出时(允许存在break),此时执行else的语句块。简单来讲,else语句块可以作为“正常”完成循环的一种奖励,与异常处理中的else类似。

实例1:

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

实例2:

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

推荐阅读
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 浙江大学2005–2006学年秋冬季学期《大学计算机基础》课程期末考试试卷开课学院:计算中心,考试形式:闭卷,允许带入场考试 ... [详细]
  • java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
    一、根据题意,填写出空格中的内容Java平台包括三个技术方向,其中J2ME代表____________、J2SE代表___________、J2EE代表 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 作用域链迷惑性代码vara100;functiontest(){console.log(a);}functiontestFun(){vara200;test();}不假思索的想到出 ... [详细]
  • LaTeX使用XeLaTeX入门基础(一)
    主机平台:GentooLinux11.2内核版本:LinuxKernel3.2.1编译环境:XeTeX3.1415926-2.3-0. ... [详细]
author-avatar
美丽凍人2502938087
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有