Python全栈开发day5
Posted Shaw Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python全栈开发day5相关的知识,希望对你有一定的参考价值。
一、lambda表达式
对于简单的函数,存在一种简便的表示方式,即:lambda表达式
1
2
3
|
>>> shaw = lambda x,y:x + y >>> shaw( 1 , 2 ) 3 |
二、python内置函数
http://www.cnblogs.com/opsedu/p/5573512.html
三、文件操作
打开文件--->操作文件--->关闭文件
f.tell() 获取指针位置
f.seek() 调整指针位置
f.flush() 把内存中数据写入到磁盘
f.read() 读取所有的内容,可以加从参数
f.readline() 读取一行数据
f.readlines() 生产一个列表(每行为一个元素)
f.trncate() 截取指定内容(依据指针)
open(文件名,模式,编码)
文件打开模式:
r 只读模式(默认)
w 只写模式(不可读,不存在则创建,存在则清空内容)
x 只写模式(不可读,不存在则创建,存在则报错)
a 追加模式(不可读,不存在则创建,存在则只追加内容)
1
2
3
4
5
6
7
|
f = open ( \'passwd.txt\' ) data = f.read() f.close() print (data) C:\\Python35\\python.exe F: / PyCharm / Python / PY_learn / lianxi.py sam 222 |
‘+’表示可以同时读写
r+ 读写(可读:按照指针位置读取,可写:按照指针的位置往后写)
w+ 写读(可读,可写)先清空文件,后来再写(写完指针到最后),然后才可以读
x+ 写读(可读,可写)文件存在,则报错
a+ 写读(可读,可写)文件打开的同时,指针已经移到最后,
1
2
3
4
5
6
7
8
|
f = open ( \'passwd.txt\' , \'r+\' ) for line in f: # 按行读取,直到文件被读完 print (line) f.close() C:\\Python35\\python.exe F: / PyCharm / Python / PY_learn / lianxi.py sam 222 |
‘b’表示以字节的方式操作
rb == r+b
wb ==w+b
xb ==x+b
ab ==a+b
1
2
3
4
5
6
|
f = open ( \'passwd.txt\' , \'rb\' ) data = f.read() f.close() print (data, type (data)) C:\\Python35\\python.exe F: / PyCharm / Python / PY_learn / lianxi.py b \'sam\\r\\n222\\r\\n\' < class \'bytes\' > |
打开文件的另一种方式,不用手工关闭文件(并且支持同时打开两个文件)
1
2
3
4
5
6
7
8
9
|
with open ( \'passwd.txt\' , \'r+\' ) as f, open ( \'shaw.log\' , \'w+\' ) ash: for line in f: h.write(line) h.seek( 0 ) data = h.read() print (data) C:\\Python35\\python.exe F: / PyCharm / Python / PY_learn / lianxi.py sam 222 |
小结:函数可以作为另一个函数的参数传递
1
2
3
4
5
6
7
8
9
|
def shaw(args): print (args) return True def s2(): print ( \'haha\' ) return True shaw(s2) |
四、冒泡排序
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误(即不符合你所需要的条件)就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
示例:
1
2
3
4
5
6
7
8
9
|
s = [ 12 , 3 , 56 , 78 , 9 , 34 ] print (s) for l in range ( len (s)): for i inrange( len (s) - 1 ): if s[i] >s[i + 1 ]: mid = s[i] s[i] = s[i + 1 ] s[i + 1 ] = mid print (s) |
五、递归
程序不断调用自己,当完成某个条件,退出
1
2
3
4
5
6
|
def s(a,b): print (a) c = a + b s(b,c) s( 0 , 1 ) |
递归实例:利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者
1
2
3
4
5
6
7
8
|
def s(deep,a,b): if deep = = 10 : return a c = a + b h = s(deep + 1 ,b,c) return h ret = s( 1 , 0 , 1 ) print (ret) |
六、python装饰器
简单理解:在不改动原代码的情况下,对当前函数添加某些功能。
原理:给原函数重新赋值到装饰器的内层函数,执行过程中装饰器的内层函数又调用了原函数,这样就做到了,在执行原函数之前和之后,还可以做些事情
1、执行装饰器(函数),并且将原函数的函数名,当做参数
2、将装饰器(函数)的返回值重新赋值给原函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/bin/envpython #-*- coding:utf-8 -*- defwai(func): def nei( * args, * * kwargs): print ( \'在原函数前添加的新功能\' ) ret = func( * args, * * kwargs) # 原函数 print ( \'在原函数后添加的新功能\' ) return ret return nei @wai defindex(a1, a2): print ( \'函数主体\' ) return a1 + a2 index( 1 , 2 ) C:\\Python35\\python.exeF: / PyCharm / Python / PY_learn / lianxi.py 在原函数前添加的新功能 函数主体 在原函数后添加的新功能 |
以上是关于Python全栈开发day5的主要内容,如果未能解决你的问题,请参考以下文章