Python 入门 到 精通(七)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44641053/article/details/101149853

Python 入门 之 模块&包&文件&异常

在这里插入图片描述

模块

模块的概念:

Python 中的模块(Module),是一个Python文件,以 .py 文件结。

包含了Python对象定义和Python语句,类似Java中的多个单独的Java文件,把相关的代码分配到一个模块中可以实现代码的重用

模块中可以定义函数、类、变量,也可以包含可执行的代码。


文件名叫做python.py(可以自定义)

定义函数、类、变量、可执行语句:

				#可执行语句
				print("模块中的打印语句")
				#函数
				def eat(what):
				    print("正在吃:",what)
				#函数
				def sleep(time):
				    print("在{time}时间睡觉")
				#变量
				name="蓝忘机"
				age=18
				#类
				class Person:
				    def playDD(self):
				        print("打怪兽")

导入模块:

导入模块,也就是说,在一个Python文件中想要使用另外一个Python文件中的函数或者变量,则需要导入模块

导入模块有三种方式:

  1. import 模块名

    import 模块名 as 别名

    使用模块:语法:模块名.功能

    				#导入模块,注意 python 是 python.py,就是上面定义的python.py模块
    				import python
    				
    				#使用python模块中的变量
    				print(python.name)
    				
    				#使用python模块中的函数
    				python.eat("露水")
    				
    				#定义python中的类
    				person=python.Person()
    				person.playDD()
    
    
    				#导入模块,并使用别名的方式,导入模块python,别名为p
    				import python as p
    				
    				#调用模块中的函数和变量
    				print(p.name)
    				p.eat("馒头")
    

    注意:该种方式导入的模块,在调用模块中的函数、变量、类时,必须前面加上模块名


  1. from 模块名 import 功能名

    from 模块名 import 功能名 as 别名

    使用模块:语法:功能

    				#导入模块中的某一个函数
    				from python import eat
    				
    				#调用python模块中的eat函数
    				eat(“馒头”)
    				
    
    				 from Snail import playDD as dd
    				
    				 dd()
    

    注意:该种方式导入的模块,在调用模块中的功能时,可以直接使用功能名即可,不需要跟着模块名


  1. from 模块名 import *

    注意:该方式导入的模块,在调用模块中的函数时,可以使用别名

    无论执行了多少次import,一个模块只会被导入一次!!!

    				from myPackage.Snail import *
    				person = Person()
    				person.sleep("肖战")
    

在实际的开发中,一个大型的系统有成千上万的Python模块是很正常的事情。

单单用模块定义Python的功能显然还不够,如果都放在一起显然不好管理并且有命名冲突的可能。

因此Python中也出现了包的概念,和Java语言中的包Package是一样的,也就是说把模块分门别类的存放在不同的文件夹。

包的概念:

包将有联系的模块组织在一起,放在同一个文件夹下,这个文件夹就称之为包。

创建包的步骤

  1. 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;

  2. 在文件夹中创建一个__init__.py的模块文件,内容可以为空;(注意:必须要创建该文件,用来告诉python将该目录当成一个包来处理,模块文件__init__.py控制着包的导入行为)

  3. 将相关的模块放入到文件夹中

导入包的方式:

  • 1、import 包名.模块名,调用:包名.模块名.功能名

    import 包名.模块名 as 别名,调用:别名.功能名

  • 2、from 包名.模块名 import 功能名,调用:功能名

    from 包名.模块名 import 功能名 as 别名,调用:别名

  • 3、from 包名 import *,调用:模块名.功能名

    注意:可以在__init__.py文件中添加__all__=[],控制允许导入的模块列表

操作: 将上述案例中的模块 python.py 放入到文件夹 a 中,则在导入模块时,需要在模块前面加上文件夹名(包名)

比如:

			语法格式:import 包.模块名 as 别名
			
			比如:import a.python as p

文件

在编程中,需要将部分数据永久保存到文件中,或者将文件中的内容读取出来,就需要学习Python中的文件操作。

打开文件

在Python中,使用open()函数打开文件并返回文件对象

open()函数,可以打开一个已经存在的文件,或者创建一个新文件

	语法:
			
			# name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)
			# mode:设置打开文件的模式(访问模式),只能 读、写、追加等,主要为"r"、"w"、"a"
			
			f=open(name,mode=' ',encoding="UTF-8")

	如:
			f=open("test.txt")

在这里插入图片描述


关闭文件

如果对文件进行了写入操作,那么应该在完成写入之后关闭文件,因为Python可能会缓存你写入的数据,如果途中发生类似断电之类的事故,那些缓存的数据根本就不会写入到文件中。

	语法:
	
			f.close()

读取文件

  • read(num): num表示从文件读取的数据长度(单位:字节),如果没有传入num,侧表示读取文件中所有数据

  • readline():一次只读取一行,即遇到“\n”就返回

  • readlines():读取整个文件,并返回列表,一行为一个元素
    在这里插入图片描述

      		#打开文件test.txt,编码格式为UTF-8
      		f=open("test.txt",encoding="UTF-8")
      		
      		#读取所有文件内容
      		content=f.read()
      		
      		#读取一行
      		content=f.readline()
      		
      		#将读取的结果存放到list列表中
      		l=list(f)
    

写入文件

write(“内容”)

如果要写入文件,请确保之前的打开模式有“w”或者“a”,否则会报错。

注意,如果使用“w”模式写入文件,之前的文件内容将会全部删除

选中一个模板,出现的黑色方框标志着选中的范围
插入新模板、收藏、复制,都是针对黑色方框进行操作。

			方法:
			f.write(“数据”)
			f=open("test.txt","a",encoding="UTF-8",) # a 追加
			f.write("\n")
			f.write("这是一行新的数据")

异常

【你不可能总是对的!!!】因为我们是人,不是神,所以我们经常会犯错!
当然,程序员也不例外,就算是经验丰富的码农,也不能保证写出来的代码百分之百没有任何问题(要不哪来那么多的0Day漏洞?)!
作为一个合格的程序员,要把用户想象成熊孩子,把他们想象成黑客,这样你写出来的程序自然会更加安全和稳定。♪(*)

处理异常

捕获指定异常类型:try-except 语句

	try-except 语法格式:
			try:
			    代码块【可能出会错的代码】
			except  异常类型:
			    出现异常的处理方式
			    
			try:
			    a=10/0
			    print(f"结果为{a}")
			except Exception:
			    print("出错了")

针对不同异常设置多个except

	多个 except 语法格式:
			try:
			    代码块【可能出会错的代码】
			except  异常1:
			    出现异常1的处理方式
			except  异常2:
			    出现异常2的处理方式

			try:
			    a=10/2
			    print(f"结果为{a}")
			    b=1+"1"
			    print(f"结果为{b}")
			except ZeroDivisionError:
			    print("除数不能为0")
			except TypeError:
			    print("类型错误")

捕获多个指定异常,对多个异常统一处理

except 后边还可以跟着多个异常,然后对这些异常进行统一处理

	多个异常处理语法格式:
			try:
			     代码块【可能出会错的代码】
			except  (异常1,异常2):
			    出现异常的处理方式

			try:
			    a=10/2
			    print(f"结果为{a}")
			    b=1+"1"
			    print(f"结果为{b}")
			except (ZeroDivisionError,TypeError):
			    print("出错了")

捕获所有异常

如果你无法确定要对哪一类异常进行处理,只是希望在try语句块中一旦出现任何异常,可以给用户一个“看得懂”的提醒。

	捕获所有异常语法格式:
			try:
			     代码块【可能出会错的代码】
			except Exception:
			    出现异常的处理方式

			try:
			    a=10/2
			    print(f"结果为{a}")
			    b=1+"1"
			    print(f"结果为{b}")
			except Exception:
			    print("出错了")

try-finally语句

	语法格式:
			try:
			     代码块【可能出会错的代码】
			except:
			    出现异常的处理方式
			finally:
			    有没有异常都会执行

			try:
			    a=10/0
			    print(f"结果为{a}")
			    b=1+2
			    print(f"结果为{b}")
			except:
			    print("出错了")
			finally:
			    print("计算完了")

异常的捕获信息

			try:
			    代码块【可能出会错的代码】
			except  异常类型 as result: # result 为异常的信息
			    出现异常的处理方式

丰富的else语句

在 Python 中,else语句不仅能跟 if 语句搭,构成“要么怎么样,要么不怎么样”的句式;
还能跟循环语句(for语句或者while语句),构成“干完了怎么样,干不完怎么样”的句式;
更能和异常处理进行搭配,构成“没有问题?那就干吧”的句式。

	语法:
			try:
			     代码块【可能出会错的代码】
			except:
			    出现异常的处理方式
			else:
			    没有异常的处理方式
			    
			try:
			    a=10/2
			    print(f"结果为{a}")
			    b=1+2
			    print(f"结果为{b}")
			except:
			    print("出错了")
			else:
			    print("没有错误")
			finally:
			    print("计算完了")

猜你喜欢

转载自blog.csdn.net/qq_44641053/article/details/101149853