在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. leetcode 50 口诀
  2. 理解统计信息(6/6):统计信息汇总贴
  3. 复合索引和一般索引的问题
  4. QT的系统总结(非常全面)
  5. 大型网站架构系列:缓存在分布式系统中的应用(三)
  6. WPF老矣,尚能饭否——且说说WPF今生未来(中):策略
  7. c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码
  8. Linux下压缩mp3文件
  9. 计算机类sci四大水刊,官方证实:「四大水刊」之一的 ONCOTARGET 2018年起将不再被 SCI 收录,你怎么看?...
  10. 【图解CDD】利用CANdelaStudio编辑诊断描述CDD文件带你入门到精通
  11. 【DB宝36】使用Docker分分钟搭建漂亮的prometheus+grafana监控
  12. html用if函数,if函数怎么用的实例
  13. Presto 在 Pinterest 的实践
  14. JavaScript风格指南
  15. 艾永亮:以超级产品战略的角度,写一份竞品分析
  16. 抖音音乐怎么下载 mp3格式转换器如何使用
  17. C++:用ReadFile函数读文件 (附完整源码)
  18. 京东主图视频怎么做,一键管理主图视频
  19. 什么是高新技术企业,高新技术企业如何认证?
  20. 云栖大会未来交互体验区:脑机绘梦、闻香识人、盲人编程

热门文章

  1. 字节跳动Deep Retrieval召回模型笔记
  2. 10种轻量级人脸检测算法大PK
  3. 聊聊JVM(三)两种计算Java对象大小的方法
  4. xgboost gbdt特征点分烈点
  5. 深度学习笔记:手写一个单隐层的神经网络
  6. 解析JavaScript中的字符串类型与字符编码支持
  7. 1155: 零起点学算法62——输出矩阵
  8. CSS :hover 选择器
  9. 最大子段和 分治与动态规划
  10. JBPM学习(一):实现一个简单的工作流例子全过程