python流程控制与异常

这篇具有很好参考价值的文章主要介绍了python流程控制与异常。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

布尔类型

布尔类型的使用

流程控制 

if语句

while循环

for循环

while循环与for循环的区别

range语句

range语句与for循环

变量的作用域

break和continue

异常

前言

异常的捕获

异常的传递性

布尔类型

布尔类型:主要用来表示现实生活中的逻辑。

布尔类型的使用

语法:变量名称=布尔类型字面量

注意:

  • bool类型字面量有两种(真:True、假:False)
  • True本质上是一个数字,记作1,False记作0
  • 布尔类型不仅仅可以通过定义得到,也可以通过比较运算符进行内容比较获得
  • 布尔类型中True和False的首字母必须大写
#定义变量存储布尔类型的数据
flag=True
print(f"flag变量的内容是:{flag},类型是{type(flag)}")
#flag变量的内容是:True,类型是<class 'bool'>

流程控制 

前言:流程控制中根据空格(一般四个空格)来决定语句属于哪个流程。

if语句

#单分支
if 要判断的条件:
    条件成立时要做的事情

#双分支
if 条件:
    满足条件要执行的事情
else:
    不满足要执行的条件

#多分支
if 条件1:
    满足条件1要执行的语句
elif 条件2:
    满足条件2要执行的语句
else:
    条件都不满足要执行的事情

注意:

  • else不需要判断条件,当if条件不满足时就会执行 
  • 空格缩进不能忘
  • 多分支中的判断是互斥有顺序的,顺序是从头到尾,前面满足就不理会后面
height=int(input("请输入您的身高(cm):"))
vip_level=int(input("请输入您的VIP等级(1-5):"))
if height<120:
    print("身高小于120cm,可以免费")
elif vip_level>3:
    print("VIP级别大于3,可以免费")
else:
    print("不好意思,掏钱吧你")

while循环

while 条件:
    条件满足时需要做的事

注意:

  • 条件必须是bool型True继续,False终止
  • 空格缩进不能忘
  • 规划好循环终止条件,否则无限循环 

案例:从0到10打印i 

i=0
while i<=10:
    print(f"i为{i}")
    i+=1

for循环

while循环与for循环的区别

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种轮询机制,是对一批内容进行逐个处理
for 临时变量 in 待处理数据集:
    循环满足时执行的语句

注意:

  • 同while循环不同,for循环是无法定义循环条件的,只能从被处理的数据集中,依次取出内容进行处理 
  • for循环内的语句同样有空格缩进
name="hello world"
for x in name:
    print(x)

理解:将name里的内容依次取出,包括空格

range语句

前言:for循环语法中待处理的数据集,严格来说称之为序列类型;序列类型指,其内容可以一个个依次取出的一种类型,包括字符串、列表、元组等

语法1:range(num)

含义:获取一个从0开始,到num结束的数字序列(不含num本身)

语法2:range(num1,num2)

含义:获取一个从num1开始到num2结束的数字序列(不含num2本身)

语法3:range(num1,num2,step)

含义:获取一个从num1开始到num2结束的数字序列(不含num2本身)数字之间的步长以step为准(step默认为1,可以为负数)

range语句与for循环

#让for循环执行10次
for x in range(10):
    具体的语句

range语句作用:通过与for循环配合快速锁定for循环的执行次数

变量的作用域

for i in range(10):
    print(f"for循环内部的i:{i}")
print(f"for循环外部的i:{i}")#可以访问到

注意:

  • 临时变量,在编程规范上,作用域范围只限定在for循环内部,若在for循环外部访问临时变量实际上是可以访问到的,但在编程规范山不允许那么做。
  • 因此,若想在外部访问for循环的临时变量尽量在for之前定义该变量,这样代码既不受到影响,我们的程序也比较符合规范

break和continue

  • continue:中断本次循环,直接进入到下一次循环
  • break:直接结束当前循环

注意:在嵌套循环中,continue和break只能作用在自己所在的循环中,无法对上层循环起作用

异常

含义:当检测到一个错误时,python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的异常,也就是我们常说的bug

前言

  • 世界上没有完美的程序,任何程序在运行的过程中,都有可能出现异常(bug)进而导致程序无法完美的运行下去;我们要做的不是力求程序完美运行,而是在力所能及的范围内,对可能出现的bug,进行提前准备,提前处理,这种行为我们称之为异常捕获
  • 我们不希望因为一个小bug就导致整个程序全部崩溃,因此我们就需要异常捕获
  • 异常捕获的作用在于提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段进行补救

异常的捕获

语法:

try:
    可能出现异常的代码
except (异常类型1,异常类型2,异常类型3) as 异常别名:
    print("异常")
else:
    没有异常需要执行的代码
finally:
    无论如何都要执行的代码

注意:

  • 若try捕获到异常,则后面的程序继续执行
  • Except为所有异常的父类,若except后的类型为except则后面的命令可省略
  • except后面跟的是元组,也可以仅跟一个异常类型(就不用写逗号和括号)
  • finally表示无论是否有异常都要执行的代码,例如关闭文件
  • else和finally是可选的
try:
    f=open("D:/test/app.txt","r",encoding="UTF-8")
except:
    print("出现异常了,文件不存在")
print("后续的代码继续执行")

异常的传递性

前言:函数嵌套时,当函数1中发生异常,并且没有处理这个异常的时候,异常会传递到函数2,当函数2函数2也没有捕获到这个异常时,则main函数就会捕获这个异常,这就是异常的传递性

def func1():
    print("func1开始执行")
    num=1/0 #肯定有异常
    print("func1结束执行")
def func2():
    print("func2开始执行")
    func1()
    print("func2结束执行")
def main():
    func2()
main()

注意:异常是可以传递的,他会从最底层的函数一直往上传递文章来源地址https://www.toymoban.com/news/detail-628123.html

到了这里,关于python流程控制与异常的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Python机器学习算法农业数据可视化分析预测系统(完整系统源码+数据库+详细文档+论文+部署教程)

    基于python机器学习XGBoost算法农业数据可视化分析预测系统,旨在帮助农民和相关从业者更好地预测农作物产量,以优化农业生产。该系统主要包括四个功能模块。 首先,农作物数据可视化模块利用Echarts、Ajax、Flask、PyMysql技术实现了可视化展示农作物产量相关数据的功能。

    2024年04月27日
    浏览(42)
  • 大数据平台中元数据库—MySQL的异常故障解决

    本文的主要目标是解决大数据平台中元数据库MySQL的异常故障。通过分析应用响应缓慢的问题,找到了集群组件HIVE和元数据库MySQL的原因。通过日志分析、工具检测和专家指导等一系列方法, 最终确定问题的根源是大数据集群中租户的不规范使用所导致,并逐步解决了这个问

    2024年02月13日
    浏览(38)
  • Oracle-数据库连接数异常上涨问题分析

    问题:         用户的数据库在某个时间段出现连接数异常上涨问题,时间持续5分钟左右,并且问题期间应用无法正常连接请求数据库         从连接数的监控上可以看到数据库平常峰值不到100个连接,在问题时间段突然上涨到400以上 问题分析:         首先查

    2024年02月05日
    浏览(66)
  • 使用达梦数据库遇到的异常问题

    dm.jdbc.driver.DMException: 数据转换丢失警告 我这里出现问题的SQL语句是: 原因 :是因为list集合中 rz 字段的数据超出的达梦库设置字段类型DEC(7,3)的长度。 dm.jdbc.driver.DMException: 数据未找到 在使用达梦数据库批量插入或更新数据时,给我报了一个从来没有遇到过的错误,当时我

    2024年02月13日
    浏览(51)
  • 解决SpringBoot连接数据库的SSLHandshakeException异常

        在改一个新项目,服务启动时报错了,堆栈信息如下:     这个错误一般是由SSL/TLS握手过程中客户端和服务器之间支持的协议或密码套件不匹配引起的。     检查了下数据库连接串,配置了useSSL=true,表示要求使用SSL/TLS来加密与MySQL数据库之间的连接。     在连接字符

    2024年03月23日
    浏览(40)
  • MySQL数据库,JDBC连接数据库操作流程详细介绍

    在学完 MySQL 和 Java 后,我们通常会尝试使用 Java编译器 连接 MySQL数据库,从而达到使用编译器来操作数据库的效果。连接的这个过程会用 JDBC 相关知识,因此我把 JDBC 包的下载及导入流程,以及 JDBC 的使用流程整理下来分享给大家。 目录 1. 啥是JDBC? 2. JDBC依赖包 2.1 依赖包

    2024年02月06日
    浏览(104)
  • 【数据库原理 • 七】数据库并发控制

    前言 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。 当前互联网+与大数据,一切都建立

    2023年04月12日
    浏览(44)
  • 【数据库原理】(26)数据库并发控制

    并发控制是数据库管理系统(DBMS)的核心功能之一。它确保在多个用户并行访问数据库时,数据库的一致性和完整性得到维护。 事务是数据库中基本的逻辑工作单位,由一系列操作组成,这些操作要么全部执行(提交),要么完全不执行(回滚)。一个事务可以是单个SQL语

    2024年01月18日
    浏览(45)
  • Bug修改日记:数据库连接异常: SQLNonTransientConnectionException

    🤖 作者简介: 努力的clz ,一个努力编程的菜鸟 🐣🐤🐥   👀 文章专栏: bug日志 ,记录一下平时开发过程中遇到的各种 疑难杂症 bug 🐛 、分析过程以及解决办法。   🍑ʜᴀ͟ᴘ͟ᴘ͟ʏᴇᴠᴇʀʏᴅᴀʏ̆̈🍅 𝓑𝓵𝓮𝓼𝓼 𝓽𝓱𝓮 𝔀𝓸𝓻𝓵𝓭 𝓷𝓸 𝓶𝓸𝓻𝓮 𝓫

    2024年02月09日
    浏览(52)
  • 开源铱塔切换MySQL数据库启动报异常

    1.错误日志: 铱塔切换数据库配置为MySQL之后,启动后报错如下: SqlExceptionHelper - Table \\\'iotkit. task_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. rule_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. device_info \\\' doesn\\\'t exist SqlExceptionHelper - Table \\\'iotkit. virtual_device \\\' doesn\\\'t exist 2.环境:  JDK

    2024年04月23日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包