一、文件操作

文件操作分读写

命令:f=open(path,model)

path是文件路径

model打开模式

r、只读

w、只写,打开时文件清空

a、只写,打开文本不清空,写在末尾

r+、可读可写

a+、可读可写

遍历文件中所有行

f=open("a.txt","r")
for line in f:
    print(line)

  text=f.read(size)读取一段文本    这是读取文件

写文件使用+f=open(path,"w")或者f=open(path,"a")

前者打开每次清空内容,后者不请空

写入使用f.write(text)

f.tell()返回当前指针

f.seek()移动指针

 

二、文本编码

我们主要使用的编码有:ascii,unicode,gbk,gb2312、utf-8

各种编码之间可以互相转换,不过都需要通过unicode,

都是通过解码:decode,编码:encode来编码解码

如utf-8转gbk,则需先将utf-8解码到unicode,然后再编码到gbk

同意gbk转utf-8也是先将gbk解码到unicode,然后再编码utf-8

 

三、函数

定义

def func_name(argums):

      pass

函数一般有返回值,通过return来返回,可以返回任何数据,包括函数

如果函数定义时没有返回,那么python会自动加一个none返回

参数

函数可以有参数,也可以没有,数量可多可少

一般情况下,函数定义几个参数,在调用该函数时就要一一对应传入几个参数,传入参数是,可以按位置参数传入,也可以按关键字参数传入,位置参数必须放在关键字参数前面。

如果在定义函数时,使用“ *args”时,也就是参数名字前面加了一个星号,可以传入多个参数,这些参数会在函数中转化为一个元组,如果使用“**kwars”,参数名字前有2个星号,会把函数调用时传入的函数定义是未定义的关键字参数转换成字典。

局部变量和全局变量

一般写在文件开头的变量为全局变量,全局生效,在函数内定义的变量为局部变量,只在函数内生效。

一般来说,在函数内,不能修改全局变量,除非把局部变量转化为全局变量,可以通过global name,来转换

例外情况:全局的列表,字典等比较复杂的数据在函数内可以被修改

递归函数:

def cal(n):
     print(n)
     if int(n/2)==0:
         return 0
     return can(n/2)

can(20)

  

h函数自己调用自己,称为递归调用

递归调用必须满足几个条件:

1、有明确的结束条件

2、函数规模要越来越小

高阶函数

以函数为参数的函数就是高阶函数

def func(x,y,f):
    return f(x)+f(y)

func(3,-5,abs)

  这个即高阶函数

 

 

posted on 2017-10-22 21:28  立志成为一个好的码农  阅读(109)  评论(0)    收藏  举报