一、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的更多相关文章

  1. python全栈开发-Day5 集合

    python全栈开发-Day5 集合 一.首先按照以下几个点展开对集合的学习 #一:基本使用 1 .用途 2 .定义方式 3 .常用操作+内置的方法 #二:该类型总结 1. 存一个值or存多个值 只能 ...

  2. python全栈开发-Day5 元组、字典

    python全栈开发-Day5  元组.字典 一.前言 首先,不管学习什么数据类型,我们都带着以下几个问题展开学习: #1:基本使用 1 .用途 2 .定义方式 3.常用操作+内置的方法 #2:该类型 ...

  3. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  4. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  5. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  6. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  7. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  8. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  9. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

随机推荐

  1. 编译Docker<v1.9.0>源码和初级安装

    本文主要介绍了如何在POWER CPU处理器上编译和安装Docker服务.很多时候,我们都需要自己编译Docker源码,有的时候是由于自己的处理器没有对应的安装包,有的时候是由于当前的新版本还有发布, ...

  2. php5.3到php7.0.x新特性介绍

    <?php /*php5.3*/ echo '<hr>'; const MYTT = 'aaa'; #print_r(get_defined_constants()); /* 5.4 ...

  3. ( C++) Access the hard drive.

    // Open up the volume HANDLE hVolume = CreateFile(wstrPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHA ...

  4. CORBA IOR学习

    Interoperable Object References: IOR IOR用于表示一个对象引用,我们知道,当我们在客户端一个CORBA对象的时候,接触的并不是真正的对象,而是这个对象的代理(Pr ...

  5. jquery “做页面滚动到某屏时改变状态标题” 所用知识点记录

    浏览器滚动条滚动时触发事件 //浏览器滚动条滚动时触发事件 $(window).scroll(function(){}); 浏览器窗口大小改变时触发事件 //浏览器窗口大小改变时触发事件 $(wind ...

  6. Python文本处理——中文标点符号处理

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法,如有更好的工具,请推荐补充. 中文标点集合 比较常见标点有这 ...

  7. Json转Java Bean

    //json字符串为Bean Device device = JSON.parseObject(jsonString, Device.class); //json字符串转List List<Mo ...

  8. 关于CSS学习的第一章

    1.CSS三种书写的方式:嵌入式.外链式.行内式 嵌入式就是将CSS写入在<style></style> 外链式将外面的CSS文件通过HTML中的标记链接过来:<link ...

  9. Cookie实现商品浏览记录--方式二:JS实现

    使用Cookie实现商品浏览记录:方式二:JS方法实现cookie的获取以及写入.当某一个产品被点击时,触发JS方法.利用JS方法判断一下,此产品是否在浏览记录中.如果不存在,则将产品ID加入到coo ...

  10. sql语句-ALTER TABLE

    在工作中常遇到要维护数据库表的列,这里主要介绍sql语句中的ALTER TABLE 语句.ALTER TABLE 语句用于在已有的表中添加.修改或删除列. 如需在表中添加列,请使用下列语法: ALTE ...