博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常、模块、文件读写
阅读量:2240 次
发布时间:2019-05-09

本文共 2293 字,大约阅读时间需要 7 分钟。

异常、模块、文件读写

目录

一、 异常

二、模块

三、文件读写

一、 异常

Python 使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让 Python 不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个 traceback ,其中包含有关异常的报告。

1、常见异常

  • 除零错误ZeroDivisionError: division by zero

  • 命名错误NameError: name ‘ok’ is not defined

  • 类型错误TypeError

  • 语法错误SyntaxError

2、处理异常

①try。。。except。。。

当我们认为某些代码可能会出错时,就可以用try来运行这段代码,

如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块。

def f4(a, b, c, d):    try: # 先尝试运行try内部的代码, 如果正常运行则和没写一样        x = b + c        y = d[3]        z = a/b        return x, y, z     except (TypeError,ZeroDivisionError, IndexError ) as e : # 当try里面的代码有问题的时候, 则跳到except里面去运行        print('您的错误信息是:', e)

②finaly 和 else

不管try子句发生什么异常,都将执行finally子句。可用于在发生异常时执行清理工作,这个子句是与try子句配套的。

try:                             # 先尝试运行try内部的代码, 如果正常运行则和没写一样    print( 10 / 0 )except ZeroDivisionError as e :   # 当try里面的代码有问题的时候, 则跳到except里面去运行    print('ZeroDivisionError:', e)finally:    print('finally里面的代码')
try:    x = 1 / 1         # try执行不报错,直接跳到else执行,再执行finally,最好执行del xexcept NameError:                  print("Unknown variable")else:    print("That went well!")finally:    print("Cleaning up.")    del xThat went well!Cleaning up.

二、模块

在Python中有一个概念叫做模块(module),比如要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。

说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块.

import math  # 调用math模块# 方法1print(math.sqrt(2)) # 调用函数必须加上模块名# 方法2from math import sin # 导入一个函数from math import cos, tan, sqrt # 一次性导入多个函数from math import * # 一次性导入所有函数# 方法3import math as m # 把模板名重命名,然后加在调用前# 打印模板中全部属性和函数import mathprint(dir(math))import calendar # 日历print(calendar.month(2019,10))

三、文件读写

1、打开文件

①相对路径

f = open("cheliang.csv",'r',  encoding='utf-8')  # GBK 或 GB2312type(f) # 查看格式f.mode # 查看状态f.name # 调用名字data = f.read() # 读取print(data) f.close()   # 从内存中释放文件

②相对路径的上层文件夹

f = open("../cheliang.csv",'r',encoding='utf-8')

③绝对路径

f = open(r"D:\CDA数分学习资料\python\【进阶】异常、模块、文件读写\【进阶】异常、模块、文件读写\cheliang.csv",'r',encoding='utf-8')

2、读文件

# read 不添加参数代表直接把整个文件读入进来data = f.read()# readlines 读取指定位置f.readline()data = f.readlines()data[0]Out[15]:'0,河北省(冀),河南省(豫),云南省(云),,,\n'  # 第一行数据

3、写文件

f = open("text.txt",'w',  encoding='utf-8')  text = '''人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。骊山语罢清宵半,泪雨霖铃终不怨。何如薄幸锦衣郎,比翼连枝当日愿。'''f.write(text)         #如果这时查看文件, 是没有内容的f.close()            # 释放后才可以看到内容

转载地址:http://cxqbb.baihongyu.com/

你可能感兴趣的文章
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【C++】STL -- Vector容器的用法
查看>>
【Linux】Linux中的0644 和 0755的权限
查看>>
【数据结构】有关二叉树的面试题
查看>>