异常处理

有时候我们在写程序的时候会出现错误或者异常,导致程序终止,如下这个例子:

#!/usr/bin/env python
a = 2/0
print(a)

结果提示如下错误:

Traceback (most recent call last):File "002.py", line 2, in <module>a = 2/0
ZeroDivisionError: integer division or modulo by zero

上面提示被除数不能为0,从而导致程序运行中断,为了能够让程序正常执行,我们可以添加tey...except...语句:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
try:a = 2/0print(a)
except Exception as e:print("除数不能为0")#raise e  # 把异常抛出来
finally:print("无论发生什么情况,都执行此步。")结果:
除数不能为0
无论发生什么情况,都执行此步。

上面如果加上了raise e,则会把异常信息打印出来:ZeroDivisionError: integer division or modulo byzero。其中except部分是对错误信息进行处理,finally是不管之前有没有异常,都会执行此步骤。

python标准异常类:

模块
模块和目录的区别,看整个文件夹里面是否有__init__.py文件,有就是模块,没有就是普通目录。__init__.py一般是一个空文件。

通常一个.py文件我们就可以称之为一个模块。

a.py
#!/usr/bin/env python
def hello():print("hello")
hello()def world():print("world")
world()b.py
#!/usr/bin/env python
import a运行python b.py结果:
hello
world

如上 ,当我们在b.py中将a.py作为模块导入之后,在运行b.py的时候,直接会运行a.py里面的所有函数,但是如果我们只想要在b.py中调用a.py中指定函数的时候运行,就需要在a.py中加入if __name__ == "__main__":语句:

a.py
#!/usr/bin/env python
def hello():print("hello")def world():print("world")if __name__ == "__main__":hello()world()b.py
#!/usr/bin/env python
import a
a.hello()
a.world()运行python b.py之后的结果:
hello
world

由上可以看出,加上if __name__ == "__main__":语句之后,就能满足我们的需求。

总结:
1、文件夹里面需要有__init__.py文件的才能当做模块使用。
2、if __name__ == "__main__":语句的使用。

内置模块

datetime

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import datetime
# 下面我们使用的是datetime模块下面的datetime模块,所以使用的时候需要datetime.datetime,为了更方便的使用,也可以直接使用from datetime import datetime
print(datetime.datetime.now())          # 打印当前时间  2018-04-23 09:33:32.055974
print(datetime.datetime.now().year)     # 打印当前时间中的年份 2018
print(datetime.datetime.now().month)    # 打印当前时间中的月份 4
print(datetime.datetime.now().day)      # 打印当前时间中的天 23
print(datetime.datetime.now().hour)     # 打印当前时间中的小时 9
print(datetime.datetime.now().minute)   # 打印当前时间中的分钟 33
print(datetime.datetime.now().second)   # 打印当前时间中的秒   32
print(datetime.datetime.now().microsecond)  # 打印当前时间中的毫秒 56063
print(datetime.datetime.now().strftime("%Y-%m-%d"))  # 从时间格式转换成字符串,满足"%Y-%m-%d"格式的字符串格式    2018-04-23 09:33:32.055974  -->  2018-04-23
print(datetime.datetime.now().strftime("%c"))        # 标准时间,类似于这种格式  Mon Apr 23 09:50:45 2018
print(datetime.datetime.now().strftime("%a"))        # 本地简化星期名称  Mon
print(datetime.datetime.now().strftime("%b"))        # 本地简化月份名称  Apr
print(datetime.datetime.now().strftime("%d"))        # 当前这天是一个月中的第几天  23
# 直接导入datetime模块下面的datetime
#from datetime import datetime
#print(datetime.now())

%Y 带世纪部分的十进制年份
%m 十进制表示的月份
%d 十进制表示的每月的第几天
%H 24小时制的小时
%M 十进制表示的分钟数
%S 十进制的秒数

如果我们需要表示昨天、上周等情况:

#!/usr/bin/env python
from datetime import datetime
from datetime import timedelta
now_time = datetime.now()   # 当前时间
print(now_time)
b = now_time + timedelta(days = -1)  # 一天前
print(b)
c = now_time + timedelta(days = -1,weeks = -1)  # 一个周前的前一天
print(c)结果:
2018-04-23 10:35:40.245370
2018-04-22 10:35:40.245370
2018-04-15 10:35:40.245370

time模块
这个time模块不是datetime下面的那个模块,它是一个单独的模块。

#!/usr/bin/env python
import time
time.sleep(2)  # 暂停2秒后,打印
print("Hello")
print(time.time()) # 打印时间戳,即从1970-01-01到现在的秒数print(time.localtime())
# time.struct_time(tm_year=2018, tm_mon=4, tm_mday=23, tm_hour=10, tm_min=47, tm_sec=59, tm_wday=0, tm_yday=113, tm_isdst=0)
time.strptime(string,[,format])  # 把一个格式化时间字符串转化为struct_time,它和strftime是逆操作。

commands模块

有时候我们需要使用shell命令,就用到了commands模块。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import commands
output = commands.getoutput("ls -ll")  # 返回执行完命令后的结果
print(output)
status, output = commands.getstatusoutput("ls -l")  # 返回一个元组,如果shell执行成功,第一个值(状态码)是0表示成功,第二个值是shell执行结果
print(status,output)

subprocess模块

和commands模块用法类似,都是用来执行shell命令的。

#!/usr/bin/env python
from subprocess import PIPE,Popen
p = Popen(['ifconfig'],stdout=PIPE)
data = p.stdout.read()
print(data)

python异常处理及内置模块相关推荐

  1. python内置模块重要程度排名_论Python常见的内置模块

    Python常见的内置模块 系统的内置模块 sys hashlib hmac base64 time datetime sys模块 sys.argv()# 在Python脚本传参使用 sys.exit ...

  2. python示例异常处理与程序调试_笔记:Python异常处理与程序调试

    Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...

  3. Python 异常处理--raise函数用法

    Python 异常处理--raise函数用法 参考文章: (1)Python 异常处理--raise函数用法 (2)https://www.cnblogs.com/darkgui34/p/405074 ...

  4. python异常处理--try except else raise finally

    python异常处理--try except else raise finally 参考文章: (1)python异常处理--try except else raise finally (2)http ...

  5. python 异常处理 try except

    python 异常处理 try except 参考文章: (1)python 异常处理 try except (2)https://www.cnblogs.com/brave1/p/10252739. ...

  6. python异常处理(基础)

    python异常处理(基础) 参考文章: (1)python异常处理(基础) (2)https://www.cnblogs.com/fnng/p/3518202.html 备忘一下.

  7. python处理流程-Python异常处理大全(二)

    原标题:Python异常处理大全(二) 本文是Python异常处理教程的第二部分,上部分我们简单的介绍了几种异常,及其处理办法,这部分我们将更详细地对Python中产生的异常处理方法进行探讨. 函数使 ...

  8. 十一、Python异常处理

    Python异常处理 异常抛出机制,为程序开发人员提供了一种在运行时发现错误,进行回复处理,然后继续执行的能力 #!/usr/bin/python try: open('abc.txt') excep ...

  9. Python异常处理体系简介(1)

    http://developer.51cto.com/art/200902/111535.htm Python异常处理体系 1.Python内建异常体系结构 The class hierarchy f ...

最新文章

  1. 小型化RDA5807调频收音模块实验板
  2. Windows下删除.svn文件夹的最简易方法
  3. Service Worker ——这应该是一个挺全面的整理
  4. java学生背景知识要求,好好学习Java并发 一、背景知识
  5. 怎么把视频里的音乐提取出来
  6. JavaScript:prototype属性使用说明
  7. 理解依赖注入(IOC)
  8. logging模块和包
  9. js实现阶乘算法的三种方法
  10. 钓鱼基础设施的应用分析(钓鱼邮件利用、Gophish)
  11. 挂载本地目录到Virtualbox并解决[mounting failed with the error: Protocol error]错误
  12. mysql清除内存不足_MySQL内存不足怎么办
  13. C语言从入门到精通pdf
  14. 环境土壤物理模型HYDRUS1D/2D/3D实践技术
  15. java zip 中文文件名乱码_java使用zip压缩中文文件名乱码的解决办法
  16. PLSQL的下载、安装、配置远程连接Oracle 详解
  17. 《一个会写诗的程序员》 东海光剑
  18. Easy Less生成.ttss后缀文件的配置
  19. C语言pow函数的调用
  20. 学信网学位认证报告在哪

热门文章

  1. ABBYY FineReader 12中怎样禁用自动处理
  2. 关于ipconfig中setclassid的初步认识
  3. Java高级-线程同步lock与unlock使用
  4. Google Map API使用详解(十)——使用JavaScript创建地图详解(上)
  5. C 工具库3:固定大小的 obj pool
  6. 无法找到脚本库错误解决过程
  7. c 内嵌php 韩天峰,PHP-X系列教程之内置函数的使用示例
  8. can总线配置读入是什么意思_STM32学习笔记—CAN总线收发数据常见问题分析
  9. 扫地机器人腿是咕噜_扫地机器人|如何避免买到“智障”,看这篇
  10. 【PP】其他类型BOM备忘录