h3

php程序员学习python3学习第八天

文件操作函数:

1,truncate() 截取文件指针前的字符,清空指针之后的字符

2,read() read(5)读取指定位置的字符或者字节 就算read(1)读一个字节的时候,也回把其指针置到尾部

4,write() 写入

5,readline()  读取一行,类似于next()

6,readlines() 读取所有字符,每一行放入列表中的一个元素

7,flush() 强行刷入硬盘 一般文件先写在内存中,当内存满的时候再写入硬盘,使用此可以强行刷入硬盘中

8,tell() 获取指针所在位置

9,seek() 跳到指定的位置

10,with open('','','') as f1, open('','','') as f2:

11,定义方法后注意添加注释

'''
读取文件,判断用户名密码是否正确
:param username 用户名
:param pwd      密码
:return bool
'''
def checkUser(username, pwd)
View Code

 12,冒泡排序

#-*- coding:utf-8 -*-
#冒泡排序
lists = [22,11,2,4,33,112,0,21]

#比较一次就应该少统计一次最大值,所以在最外层有一层用来控制循环的
for j in range(1,len(lists)):
    for x in range(len(lists) - j):
        print(x,type(x))
        #如果第一个值比其第二个值大的话,那就将大的值放在后边
        if lists[x] > lists[x+1]:
            temp = lists[x]
            lists[x] = lists[x+1]
            lists[x+1] = temp
print(lists)

13,递归生成斐波那契数列

# -*- coding:utf-8 -*-
# 斐波那契数列
# 格式为从0还是,第一个值加第一个值一次叠加
lists = []
def fbnq(flag, a1, a2):
    lists.append(a1)
    print(lists)
    tmp = a1 + a2
    if flag == 10:
        return lists
    fbnq(flag+1, a2, tmp)

res_list = fbnq(1,0,1)
print(res_list)
View Code

14,装饰器的使用,用在不改方法内部的内容,增加新的需求

#-*- coding:utf-8 -*-
#装饰器的简单使用

def func(x):
    def test():
        print('hello')
        #原函数
        r = x()
        print('end')
    return test

@func
def f1():
    print('f1')

f1()
# 1,在执行f1函数时,先执行装饰器func,将f1的参数名传递进去
# 2,在func的内部将test整个方法返回
# 3,此时f1再进行调用的时候已经是在执行test方法内的程序
View Code

15,装饰器传递N个参数,使用*arg  **kwargs

#装饰器传递n个参数,复用装饰器,不管原函数具有几个参数
def func2(x):
    def inner(*arg, **kwargs):
        print('start')
        res = x(*arg, **kwargs)
        print('end')
        return res
    return inner

@func2
def test1(a1, a2):
    print('test1')
    return a1 + a2

@func2
def test2(a1, a2, a3):
    print('test2')
    return a1 + a2 + a3
result = test1(1, 32)
results = test2(2, 3, 4)
print(result)
print(results)
View Code

16,一个函数应用多个装饰器,将定义的函数上边引用需要引用的装饰器,先执行的写在上边

假如有三个装饰器,先执行第一个装饰器上边的结构,再到第二个装饰器上边的结构,再到第三个装饰器上边的结构,再到执行原函数,再执行第三个装饰下边的结构,再到第二个装饰器下边的结构,再到第三个装饰器下边的结构

#一个函数应用多个装饰器
def func_0(x):
    def inner(*arg, **kwargs):
        print('start')
        res = x(*arg, **kwargs)
        return res
    return inner

def func_1(x):
    def inner(*arg, **kwargs):
        res = x(*arg, **kwargs)
        print('end')
        return res
    return inner

@func_0
@func_1
def f1(a1, a2):
    print('f1')
    return a1 + a2

result = f1(1, 2)
print(result)
posted @ 2017-05-23 18:48  码上平天下  阅读(100)  评论(0)    收藏  举报