Python学习笔记-2017.5.4

本文章记录学习过程中的细节和心得:

复习所学课程:

1、文件的操作:

  打开文件,对文件的操作打开方式有两种:

  第一种:

    

f = open("test.txt", "r")#以只读方式打开文件,此方式不能写和追加。
f.readline#读取第一行
f.readline#读取第二行,以此类推。
f.readlines#读取所有行到内存中。
f.close#关闭文件

  第二种:

  

with open("test.txt", "r") as f1, open("test2.txt", "r") as f2#以with方式打开文件,操作完成后,会自动关闭文件,不用使用f.close方法。

  修改文件,打开时,对文件的方式有以下几种:

  r:只读方式打开原文件,不能写和追加。

  w:以写的方式打开文件,如果有原文件,就进行覆盖,如果没有原文件,就进行创建,以w方式打开的文件是一个空文件。

  a:以追加方式打开文件,不能读,只能在最后添加内容。

  r+:以读和追加写的方式打开文件,可读,可在最后追加,不能在中间编辑,2.7支持在中间编辑,但是新编写的内容会覆盖旧的内容。

  w+:以读和写的方式打开晚间,如果有原文件,就进行覆盖,如果没有原文件,就进行创建,以w+方式打开的文件是一个空文件。

  a+:以读和追加的方式打开文件,可读,可在最后追加。

  rb,wb,ab:以二进制操作,适用于视频处理。

函数的操作:

  面向对象的编程:比如Java,使用类,class;

  面向过程的编程,如Python,使用def定义的函数;

  面向函数的编程,比如Hash等,输出是固定的,不像python,是可变的。

定义一个函数:

  

def test(x,y,z, *args, **kwargs):
    """
    **********#参数,注释等描述
    """
    print(x)
    print(y)
    print(z)
    print(args)
    print(kwargs)
    return True
test(1,2,3,4,5,6,niubin="zzz")

变量的输入,变量作为形参,输入的是实参,变量可以有,也可以没有;

变量的类型有位置变量,即上述代码,变量和实参按照位置一一对应,也可以使用关键字变量,比如x=1,y=2,z=3;

关键字变量不能位于位置变量之前;

对于不能确定数量的变量,可以使用*args输入,实际输入为元祖,上述例子输入为(4,5,6)

对于不能确定数量的字典,可以使用*kwargs输入,实际输入为字典,上述例子输入为{niubin: “zzz“}

高阶函数:

函数中,变量的输入,可以使用其他的函数。

递归:

必须有明确的退出条件;

每一次递归,函数的覆盖范围必须减少;

效率低下,Python规定的次数是999次。

局部变量和全局变量:

变量都有自己的作用域,全局变量作用于全局,函数内部的变量作用于函数内部,如果函数内部没有这个变量,逐渐每层向外层查找,直到查找到全局变量;

全局变量尽量不要从函数内部修改,如果需要修改,需要Global声明;

如果全局变量是列表或者字典形式,可以从函数内部修改。

如果全局变量是字符串,数字等形式,尽量不要修改。

关于修改后的关系,示例代码如下:

niubin = 32
def test(a,b,*args, **kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)
    global niubin
    niubin = 33
    print(niubin,"22222")#输出为33,因为变量已经修改
print(niubin, "!!!!!!")#输出为32,因为全局变量没有修改
test(1,2,3,4,5,6, xxx="bbb", yyy="zzzz")
print(niubin, "333333333")#输入为33,因为global已经声明,所以全局变量被修改,如果没有global声明,此处输出应为32.
时间: 2024-10-26 18:43:55

Python学习笔记-2017.5.4的相关文章

Python学习笔记-2017.5.4thon学习笔记-2017.5.14

Python学习过程中的笔记,只做自己参考使用: lambda函数,匿名函数,当我们使用一个函数并且使用完成就删除时,可以使用匿名函数,比如f等于xyz三个之和: f = lambda x,y,z:x+y+z 生成器和迭代器: 生成器,我们常用的列表一般有两种方式生成,例如: 1.直接写出列表 a = [1,2,3,4,5,6,7,8,9] 2.通过列表生成式生成列表 a = [i*i for i in range(10)] 上述两种列表是我们常用的列表方式,调取方便,随便增删改查取值,但是有可

Python学习笔记-2017.5.4thon学习笔记-2017.8.08

#random模块 import random print(random.random())#0到1之间的随机数 print(random.randint(1,10))#从1到10随机 print(random.randrange(1,10))#从1到9随机,不包括10 print(random.choice([1,2,3,4,5]))#内容可以是字符串,元组,列表等对象 print(random.sample("jack", 2))#在指定的对象中选择两个,当然,也可以是其他个数 p

Python学习笔记-2017.5.4thon学习笔记-2017.8.11

json pickle 序列化可以dump多次,但是不能load多次的问题 我们可以使用shelve模块 #shelve 模块,是对pickle更上一层的封装 import shelve,datetime d = shelve.open("shelve模块") a = {"name":"jack", "job":"it"} b = [1,2,3,4,5,6] c = (7,8,9,datetime.date

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

python学习笔记12-模块使用

python学习笔记12-模块使用 模块os,sys 什么是模块? 模块os,sys 模块是Python组织代码的一种基本方式 一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py 什么是Python的 包? Python的模块可以按照目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在改目录下创建一个__init__.py文件 根据需要,在该目录下存放脚本文件或已编译的扩展及子包 import pack.m1,pack.

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

Python学习笔记_Python对象

Python学习笔记_Python对象 Python对象 标准类型 其他内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比较 对象身份比较 布尔类型 标准类型的内建函数 typeObj cmpobj1 obj2 strobj reprobj typeobj isinstanceobj 标准类型的分类 存储模型 更新模型 访问模型 不支持的类型 Python学习笔记_Python对象 首先来理解一个通俗的含义,什么是对象?其实对象无论在什么语言里面

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd