函数之三元表达式,递归,匿名函数,内置函数

三元表达式

条件成立会返回一个值,不成立会返回一个值

def  func(x,y):
      if  x>y:
           return  x
      else:
           return  y

res=x  if x > y   else  y   #三元表达式
print(res)

列表推导式,生成器表达式

#  列表推导式egg_list=[]
for i in range(10):
    egg_list.append(‘鸡蛋%s‘ %i)

egg_list=[‘鸡蛋%s‘ %i for i in range(10)]

# 将列表推导式的 [ ]  换成  () 就是生成器表达式

列表推倒式比较直观、占内存

生成器表达式不容易看出内容,省内存

[变量(加工的变量)for 变量i  in   可迭代的数据类型] 列表推导式  # 循环模式

[变量(加工后的数据)for  变量i  in   可迭代的数据类型  if  条件] 列表的推导式  # 筛选模式

递归

函数的递归即在调用的过程当中,又直接或间接地调用了函数本身

递归分为两个阶段

1、回溯(一定要在满足某种条件下,结束回溯,否则会无限递归)

2、递推

def salary(n):
    if n == 1:
        return 100
    return salary(n-1)+300
print(salary(5))

# salary(5)=salary(4)+300
# salary(4)=salary(3)+300
# salary(3)=salary(2)+300
# salary(2)=salary(1)+300
# salary(1)=100                      # 回溯

# salary(n)=salary(n-1)+300     n>1
# salary(1) =100                n=1             #  递推

总结:

1、递归一定要有一个明确的结束条件

2、每进入下一次递归,问题的规模都应该减少

3、在python中没有尾递归优化

4、递归效率不高,递归层次过多会导致栈溢出

匿名函数(不会单独使用)

1、匿名的目的就是没有名字,给匿名函数赋给一个名字是没有意义的

2、匿名函数的参数规则,作用域关系与有名函数是一样的

3、匿名函数的函数体通常应该是一个表达式,该表达式必须要有一个返回值

# f =lambda x,n:x ** n
# print(f(3,3))
# 因为匿名函数最重要的一点就是没有名字,所以这种赋值是没有意义的

def   func(x,y,z)
       return   x+y+z
lambda  x,y,z: x+y+z     #匿名函数

匿名函数与有名函数的对比

有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能

匿名函数:一次性使用,随时随时定义

lambda 匿名函数的应用

# map  映射
names=[‘alex‘,‘wxx‘,‘yuanhao‘,‘egon‘]
res=map(lambda x:x+‘_nb‘if x==‘egon‘else x+‘_sb‘,names)
print(list(res))

# reduce
from functools import reduce
l=[‘my‘,‘name‘,‘is‘,‘alex‘]
res = reduce(lambda x,y:x+‘ ‘+y,l)
print(res)

# filter  过滤,成功 True,否则 False
# names=[‘alex_sb‘,‘wxx_sb‘,‘egon‘]
# res=filter(lambda x:x.endswith(‘_sb‘),names)
# print(list(res))

内置函数

# print(abs(-1))
# print(all([1,‘a‘,True])) # 列表中所有元素的布尔值为真,最终结果才为真
# print(all(‘‘)) # 传给all的可迭代对象如果为空,最终结果为真

# print(any([0,‘‘,None,False])) #列表中所有元素的布尔值只要有一个为真,最终结果就为真
# print(any([])) # 传给any的可迭代对象如果为空,最终结果为假

# print(bin(11)) #十进制转二进制
# print(oct(11)) #十进制转八进制
# print(hex(11)) #十进制转十六进制

# print(bool(0)) #0,None,空的布尔值为假

# res=‘你好egon‘.encode(‘utf-8‘) # unicode按照utf-8进行编码,得到的结果为bytes类型
# res=bytes(‘你好egon‘,encoding=‘utf-8‘) # 同上
# print(res)

# def func():
#     pass
# print(callable(‘aaaa‘.strip)) #判断某个对象是否是可以调用的,可调用指的是可以加括号执行某个功能

# print(chr(90)) #按照ascii码表将十进制数字转成字符
# print(ord(‘Z‘)) #按照ascii码表将字符转成十进制数字

# print(dir(‘abc‘)) # 查看某个对象下可以用通过点调用到哪些方法

# print(divmod(1311,25)) # 1311 25

# 将字符内的表达式拿出运行一下,并拿到该表达式的执行结果
# res=eval(‘2*3‘)
# res=eval(‘[1,2,3,4]‘)
# res=eval(‘{"name":"egon","age":18}‘)
# print(res,type(res))

部分内置函数用法

原文地址:https://www.cnblogs.com/Yang-Sen/p/8695456.html

时间: 2024-10-03 13:46:32

函数之三元表达式,递归,匿名函数,内置函数的相关文章

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

函数生成器、推导式及python内置函数

函数生成器.推导式及python内置函数 函数生成器 生成器的定义 在 Python 中,使用了 yield 的函数被称为生成器(generator). 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器. 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行. 调用一个生成器函数,返回的是一个迭代器对象. 生成器与迭代器的区别 生成

python基础12_匿名_内置函数

一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66] def binary_search(dataset, find_num): print(dataset) if len(dataset) > 1: mid = int(len(dataset) / 2) if dataset[mid] == find_num: # find it print

python 培训第三章 ,函数,装饰器,模块,内置函数之一函数

目录: 函数示例装饰器模块内置函数一.函数示例: 1.定义函数: def fun(args): '描述信息' 函数体 return 返回值 定义函数的三种形式: 无参函数def foo():print('in the foo') foo() 有参函数: def bar(x,y): print('in the bar') bar(1,2) 空函数: def func(): pass 空函数的应用示例: def put():pass def get():pass def cd():pass def

Python函数的基本定义和调用以及内置函数

首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解下函数的概念,就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字.使用的时候只要调用这个名字,就可以实现语句组的功能了. 语法如下: # 定义方式 : def functionname([parameterlist]): functionname:函数名 paramet

十一、函数递归,算法二分法,三元表达式,列表字典生成式,匿名函数,内置函数

一.函数递归: 函数的递归:函数在调用阶段直接或间接的又调用自身 递归分为两个阶段 1.回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都应该下降 直到有一个最终的结束条件 2.递推:一次次往回推导的过程 3.递归函数在运行过程中一定要有出口,否则会无限循环下去 # 1.求4以内的和: def sum_numbers(num): if num == 1: return 1 return num + sum_numbers(num - 1) # 递归特点:函数内部自己调用

python — lambda表达式与内置函数

目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): =====> func = lambda a1,a2:a1+a2 # 函数直接得到返回值,这里隐藏了return return a1+a2 简化 # 三元运算,为了解决简单的if else的情况,如: if 1 == 1: a = 123 else: a = 456 a = 123 if 1 == 1

内置函数及匿名函数 补充

一 匿名函数: (lambda表达式) 关键字:lambda 结构: 匿名函数的内存地址=  lambda 参数1,参数2 :返回值/返回值的表达式 其他的就跟函数的调用接收传参一样 接收返回值(a)=匿名函数的内存地址(参数),相当于a=func(参数) 简单例子: f=lambda a,b:a+b print(f(1,2)) 需要注意的是: 函数的参数可以有多个,之间用逗号隔开,匿名函数不管多复杂,只能写一行,一行结束返回结果, 返回值和正常函数一样,可以是任意数据类型. 二 内置函数:(常

13t天 迭代器,生成器,内置函数

上周复习: 函数的递归调用 函数调用时函数嵌套调用的一种特殊形式 函数在调用时,直接或间接调用了自身,就是梯归调用. 直接调用自身 def f1():   print('from f1')   f1()f1() 间接调用函数 def f1():   print('from f1')   f2()?def f2():   print('from f2')   f1()f1() 梯归 递归应该分为两个明确的阶段,回溯与递推. 回溯就是从外向里一层一层递归调用下去,回溯阶段必须要有一个明确地结束条件,

pythopn 函数(内置函数)

内置函数(Py3.5) 重要的内置函数: 1. filter(function, sequence) # 描述: filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表. 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判, 然后返回 True 或 False,最后将返回 True 的元素放到新列表中. # 语法: 以下是 filter() 方法的语法: filter(function,sequence) # 参数: funct