在python程序中我们有时会遇到错误或者“异常”,这往往意味着整个程序面临崩溃。

我们并不希望在运行过程中突然出现此类状况,而是希望能够知道错误类型,并能够及时处理它,然后继续运行。

今天我们介绍一下如何用try......except......通过判断错误类型,进行及时处理,来保证程序正常运行。

这里我们通过一个简单的小例子来理解:

题目:写一个函数,判断输入值(num)的奇偶性,如果是奇数则返回(3*num+1),偶数则返回(num//2),直到返回值为1,程序结束。要求对输入的内容进行验证。

这个过程中为避免输入的内容不是整数,引起错误,我们需要对输入的内容进行错误处理,具体代码如下:

def collatz(number):if number%2==0:#print(number//2)return number//2elif number%2==1:#print(3*number+1)return 3*number+1   while 1:try:num=int(input())collatz(num)if collatz(num)==1:breakexcept ValueError:print('请输入整数')print(collatz(num))

这里定义了一个函数collatz()来判断输入值的奇偶性(该题目暂时不考虑输入值为0的情况);然后通过使用 while 和 if 来实现“直到返回值为1”结束。

我们看运行结果:

题目运行结果

try......except......异常处理,程序获取到异常后直接跳到 except,所以 except 放在一次循环结束的位置,避免出现变量未定义之类的错误;try 放在获取输入值语句之前即可。

小小的案例希望能够带给编程中的你小小的帮助,让我们一起进步,欢迎交流指教。

python中的try......except......相关推荐

  1. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  2. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  3. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  4. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  5. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  6. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  7. [翻译]Python中yield的解释

    问题: Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码 def node._get_child_candidates(self, distance, min_dist ...

  8. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  9. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  10. 通过带Flask的REST API在Python中部署PyTorch

    通过带Flask的REST API在Python中部署PyTorch 在本文中,将使用Flask来部署PyTorch模型,并用讲解用于模型推断的 REST API.特别是,将部署一个预训练的Dense ...

最新文章

  1. sql特殊字符转义,oracle中将字符 ‘ 转义
  2. 从一个死锁看mysql innodb的锁机制
  3. 单台主机 kafka + zookeeper 集群搭建
  4. 关于IsolatedStorageFile存取文件的问题
  5. 每日一题(19)—— 用变量a给出下面的定义
  6. 玩转算法面试:(一)什么是算法面试?
  7. gx works2产品id_gx works2中文版下载|
  8. python画美女代码_3分钟画字符画跟女神表白,利用python字符串、列表方法
  9. 笔记本电脑清灰打硅脂后,开机一直黑屏,如何破?
  10. linux投影手机,linux连接投影机方法介绍
  11. 【番杰的小技巧笔记】查看windows许可证到期时间
  12. wait和notify方法
  13. stm32f429ig usbvcp故障排除
  14. 软件开发的过程中,这些文档你都用到了吗?
  15. 中心损失和单中心损失
  16. Java笔记总结(一)
  17. 如何在 R 中应用经验法则
  18. Scrapy-Splash爬取淘宝排行榜(二)
  19. 车载wince升级改造_想在低配车内蹦迪?改造车机还不如装个接收器,也就一顿饭钱...
  20. oracle access表丢失,oracle 11.1.0.7-版本也会出现access$表丢失导致数据库无法启动

热门文章

  1. SQL语句、PL/SQL语句、SQL*PLUS语句结束符号
  2. 基于 Flink+Iceberg 构建企业级实时数据湖 | 附 PPT 下载
  3. Spark内存管理(2)—— 统一内存管理
  4. 微信小程序---转发分享功能
  5. 跨库多维分析后台的实现
  6. GCC/G++选项 -Wl,-Bstatic和-Wl,-Bdynamic
  7. katalon中REST URL占位参数动态化
  8. ***F漏洞分析与利用
  9. 实现微信朋友圈动态列表
  10. 再谈Docker,微服务的场景化应用