第七篇、函数二

一、冒泡排序

li = [15,14,13,12,11]
"""
这里是外面套循环轮数,内部循环拿到一个最大值
记住,range的循环不带最后一个
里面循环是拿到一个最大值,然后外面是循环多少轮那就把最大值拿出来了

"""
‘‘‘
for n in range(1,len(li)):
    for m in range(len(li)-n):
        num1 = li[m]
        num2 = li[m+1]
        if num1>num2:
            tmp = num1+num2
            li[m] = tmp -num1
            li[m+1] = tmp - num2
print li
‘‘‘
"""
第二种冒泡方式比较
选择两个列表进行比较
li[n] = [15,14,13,12]
li[m] = [14,13,12,11]
"""
for n in range(len(li)-1):
    for m in range(n+1,len(li)):
        if li[m]>li[n]:
            tmp = li[n]
            li[n] = li[m]
            li[m] = tmp
print li

代码

二、lambda表达式

‘‘‘
lambda表达式只能写
1、(替代)简单的函数
2、自动return

简化的if else,三元运算
简化的函数定义,lambda表达式
具体规则如下
def func(args):
   return args + 1
写成lambda表达式如下:
func(函数名) = lambda args(参数):(返回值)args +1
func()
‘‘‘
def func1(arg):
    return arg + 1
result = func1(100)
print result

func2 = lambda a : a+1
result = func2(1000)
print result

func3 = lambda a,b,**kwargs : a+b
result = func3(1000,888,)
print result
输出如下:
101
18888

三、内置函数

map 所有元素操作

filter过滤,获取指定元素集合

reduce 累计操作

‘‘‘
遍历函数,对序列中每个元素进行操作,最终获取新的序列
格式:new_list = map(函数名,序列)
就是把序列放入函数名的函数中执行之后让如到new_list里面
‘‘‘
li = [33,37,35]
def func1(args):
    return args + 10
new_list = map(func1,li)
print new_list
43,47,45
‘‘‘
给出两个列表,然后用lambda表达式和普通表达式让两个列表相加
‘‘‘
l1 = [11,12,13]
l2 = [21,2,3]
def func2(a1,a2):
    return a1 +a2
print map(func2,l1,l2)
print map(lambda a1,a2:a1+a2,l1,l2)
‘‘‘
注意下面:
l1 = [11,12,13]
l2 = [21,2,3]
l3 = [1,2]
def func3(a1,a2,a3):
    return a1 + a2 + a3
print map(func3,l1,l2,l3)
注意上面的会出错,主要原因是序列里面的数不一样,这个时候的l3的第三个数是None,如果想要正确运行需要做一下内容,进行判断
if not a3:这里的意思是a3不为真的时候,也就是包含none的时候
‘‘‘
l1 = [11,12,13]
l2 = [21,2,3]
l3 = [1,2]
def func3(a1,a2,a3):
    if not a3:
        a3 = 0
    return a1 + a2 + a3
print map(func3,l1,l2,l3)

内置函数filter(筛选)

对于序列中的元素进行筛选,最终获取符合条件的序列(条件为真的时候就放入到一个新的序列里面)
filter默认取真的值,0字符串等都是false
‘‘‘
li = [11,22,33,44,0]
print filter(lambda a:a > 33,li)

内置函数reduce

对于序列内所有元素进行累计操作
reduce(函数名,序列,基数(可选)),所有的运算结果都是在基数之上进行的
‘‘‘
li = [1,2,3,4,5,6,7,8]
result = reduce(lambda arg1,arg2:arg1 + arg2,li,1000)
print result
结果1036

四、yield生成器

yield生成器  ---- 制作数据库连接池
记住上一次操作(冻结),下次再执行时,继续执行
函数内,return之后,函数执行完毕,结束了生命周期
‘‘‘
def func1():
    yield 1
    yield 2
for i in func1():
    print i
结果为1 和2
自己制作一个xrange生成器
‘‘‘
def mrange(arg):
    seed = 0
    while True:
        seed = seed + 1
        if seed > arg:
            return
        else:
            yield seed
for i in mrange(10):
    print i
时间: 2024-10-10 05:40:23

第七篇、函数二的相关文章

Python 学习日记第七篇 -- 函数

一.函数  1.函数的使用场景及定义 在使用函数编程之前,我们一直是面向过程式编程,语句的堆积造成大量的代码重复,由此,函数应运而生,函数式编程是将反复使用的代码封装到函数中,使用时只需调用即可.函数的学习会让我们更快理解面向对象这一抽象的概念,面向对象即是对函数进行分类和封装. #函数的定义 def first_func():     print("This is my first function!") first_func() def:定义函数的关键字 first_func:函数

【Python之旅】第七篇(二):Redis使用基础

由于学习开发监控软件的需要,因此需要使用到Redis,这里简单介绍. 1.安装 可以查看这里的文章:http://www.linuxidc.com/Linux/2014-05/101544.htm 2.启动 由于采用的是源码安装的方式,所以直接进入src目录,启动redis-server: [email protected]:/mnt/hgfs/Python/day7/redis-2.8.9/src$ ./redis-server  [12681] 16 Oct 00:06:52.964 # W

iOS开发Swift篇—(七)函数

iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, … (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列表)

iOS开发Swift篇—(七)函数(1)

iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, … (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列表)

第七篇 python基础之函数,递归,内置函数

阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做

saltstack(七)modules(二)

OK,上一篇总结了execution modules的用法.这一篇准备总结一下state modules该怎么写. 顺便把上一篇execution modules遗留下来的那个装饰器给写一下. 看一下写的这个模块 [email protected]:~# cat /srv/salt/_modules/liss.py  import salt.utils.decorators as decorators import os @decorators.depends('os') def cheng()

第五篇 函数进阶

目录 第五篇 函数进阶 一 闭包函数 二 装饰器 三 迭代器 四 三元表达式 五 列表推导式 六 字典生成式 七 生成器 八 递归 九 匿名函数 十 内置函数 第五篇 函数进阶 ==回顾基础== 函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制. 名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了,与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系. 一 闭包函数 闭包 闭就是封闭(函数内部函数),包就是包含(该内部函数对外部作用域而非全局作用

Python之路【第七篇】:线程、进程和协程

Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time   def show(arg):     time.sleep(1)     print 'thread'+str(arg)   for i in

第七章 函数

第七章  函数 7.1  函数的基础知识 要使用函数,必须完成如下工作: Ø  提供函数定义 Ø  提供函数原型 Ø  调用函数 7.1.1  函数的定义 函数总体来说可以分为两类,一类是没有返回值的,另一类是具有返回值的,两类的函数定义的格式如下 void functionName(parameterList) { statement(s) return; //可以有也可以没有 } typeName functionName(parameterList) { statement(s) retu

C#基础知识篇(二)-----------C#笔记

1.关系运算符(比较运算符) 1.关系运算符有哪些? >,< ==,!= >=,<= 2.关系运算符的作用? 用于比较两个事物之间的关系. 3.什么叫关系表达式? 由关系运算符连接起来的式子叫关系表达式. 注意:所有的关系表达式最终都能计算成一个bool类型的值. 2.逻辑运算符 1.逻辑表达式有哪些? 逻辑与:&& ,逻辑或:||  ,逻辑非:!(又叫取反) 2.逻辑运算 语法:表达式1 逻辑运算符  表达式2 逻辑运算符连接的两个表达式,要最终能求解成一个boo