Python基础学习3

6 模块和包

(1)    命名以.py结尾的文件就是Python模块

Python的包就是一个文件夹,至少有还有一个__init__.py的文件

包中可以有文件夹,文件夹中可以有包

(2)    文件的导入

每使用一个变量名或者函数时,就需要导入另一个文件

例:从mian.py中导入lib文件下的一个函数,现在想从mian.py中使用do_parse函数

在编译器下通过运行python main.py从而运行main.py,和main.py在同一个目录下面的其他包可以被导入使用,现在要导入lib中的do_parse函数,需要在mian.py的源代码中写 from lib.parse import do_parse(parse是lib包下面的一个.py文件,do_parse是该文件下的一个函数)


第三方包的导入

如果lib不在同一个目录下,Python可能找不到,可以使用from .xxx(用.表示当前模块下的,另外还有..就是当前模块的上一目录下)

如果第一次导入的时候,会执行刚刚的代码,但是如果第二次导入的时候,就不会第二次执行了

(3)    Python2的特有导入

如果是同包的目录下,就不用使用.号,但是不建议使用

(4)    使用小技巧

dir(模块):查看模块属性

如:在Linux下进入Python,执行(sys是一个系统包)(可以把sys暂时理解为一个对象):import sys->dir(sys)下面会弹出一系列的变量名,此时可是执行:type(sys.version)查看version的属性这里显示的是str,意思是version是str类型的。如果执行type(sys.getsizeof),此时显示的getsizeof是一个函数,如下图


技巧2

每个内置的模块都有一个内置的变量,以双下划线开头,双下划线结尾的__name__,不用定义可以直接使用,一般是一个str类型,即每一个.py下都有一个内置变量,如果是入口模块的话(模块就是一个.py文件),它的内置变量就固定为__main__,如果使用if __name__==”__main__”就可以判断这个模块是否为入口模块

7 高级数据结构

(1)    元组

与列表很相似,定义时把中括号改成小括号,只不过元组的内容不可变,可以理解为常量,注意(2)不是元组,而应该使用(2,),这个是只有一个元素的元组的写法

(2)    字典

想要表示映射的关系

用{}括起来,如

{

“123”:123

456:”hello”

}

注意冒号左边是常量,叫做键,冒号右边是常量或者变量,叫做值,可以讲上式写成一行a={“123”:123,456:”hello”}。如果我们想使用字典里面的值,则使用a[“123”],字典取值,得到了123.如果想要改变字典中的值的话,则使用a[“123”]=”world”,字典设置值。特性是速度非常快

(3)    字符串

字符串可以理解为一个特殊的列表,列表中的每个元素就是一个字符,字符串也是一个常量,我们无法修改其值。字符串可以截获使用,如a=”hello world”,可以使用a[:5]获取前五个值的这样的一个新的字符串进行使用。

字符串的占位符替换

如a=”hello %s” % “world”:这样的话,就把%s替换成world。如果要替换多个值可以使用如下的方式a=”%s %s” % {“hello” “world”}(列表的形式进行替换)。关键字替换:a=”%(a)s%(b)s” % {a:”hello”,b:”world”}(字典形式进行替换)。

(4)    函数中使用元组和字典

当函数返回多个值时,实际上返回的就是一个元组。把一个元组赋值给其他变量时,就是一个拆包的过程。如果我们定义了一个相加的函数add(),此时可以使用元组进行传参,使用方法如下:定义元组nums=(1,2)

使用函数和元组add(*nums),实际上就是把nums替换成了1,2

使用字典和函数

param={“a”:1,”b”:2}

param(**param)->param(a=1,b=2)

8 类和对象

出来模块和函数的形式外,在我们构建大型项目的时候,我们学会使用类和对象的形式

(1)    创建类

class cat(object):

leg_cnt=4        #类属性

def __init__(self,cat_name):      #init的名字固定,整条语句不可变,固定是实例的创建过程,self固定格式,不可变,self就是一个实例化的对象

    self.name=cat_name         #name是附属于self实例的一个变量,使用的方式就是这种形式

def change_name(self,cat_name):  ##一个参数一定是self,第一个参数可变,课不用,看自己的需求,这样的一个函数就是一个方法

(2)    使用类(类的实例化)

使用tom=Cat(“Tom”):进行实例化,,此时tom是一个对象

方法的调用:tom.change_name(“xiaohei”)

对象的固有属性:就是在定义类的时候,已经说明leg_cnt=4,所以tom中已经存在leg_cnt=4

(3)    类的继承

class MyCat(Cat):                         #让猫实例化

def __init__(self,cat_name):          

    surper(Mycat,self),__init__name    

def jump(self)

    printf(“try jump”)

     jack=MyCat(“jack”)

     jack.jump()

     jack.climb()

9 文件处理

(1)    写入文件

比如我在某一文件夹下面创建了一个新的文件pome.txt,并在该文件里面写入了内容,可以使用f=open(‘\\\’,’w’)    #\\\是文件路径,而w(写入)是打开的属性,还有r(读取),a(追加)

接着使用f.write(pome)文件的一个写入方法,然后使用f.colse()进行文件的关闭

(2)读取文件

f.open(‘文件的路径’)

  while Ture

     line=f.readline()     #读取一行内容

     if len(line) == 0:

         break

     printf(line,end=””)   #替换了内置的换行符,因为printf()的后面会内置一个换行符

  f.close() #关闭文件

  (3)with语句

   with open(‘\\\’,’w’) as f:

       f.write

  因为加了一个with语句,当with结束时,会自动关闭文件

10 异常处理

(1)    将异常包装成一个对象,这些对象有一个基类Exception

捕获异常对象一

try:

  ….   #可能会出现异常的错误代码

except (一个错误类名称内置的) ase:

printf(e)     #处理这个异常

except Exception(这个是异常的基类):

   #处理异常代码,如打印

else:

    #没有异常的情况的代码

 

捕获异常2

try :

一段可能出错的代码

finally:

    #最后一定会执行这个语句

 

另外还可以raisee   #就是抛出异常

实例演示:在Linux下使用vim创建一个a.py的文件,然后输入如下代码


保存退出后,执行pythona.py 会显示抛出异常


如果想继续抛出异常,就可是使用如下


此时执行,又会抛出异常的处理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值