DAY14 函数(三)
一.三元表达式
三元运算符:就是if...else...的语法糖但是只支持只有一条if...else...语句的判断
原:
cmd = input('cmd:')
if cmd.isdigit():
print('可转化为数字')
else:
print('不可转化为数字')
三元表达式简化:
cmd = input('cmd:')
print('可转化为数字') if cmd.isdigit() else print('不可转化为数字')
案例:得到两数大值
a = 20
b = 40
res = a if a > b else b
print(res)
二.推导式
列表(元组)与字典的转换语法糖
列表推导式:
dic = {'a': 1, 'b': 2, 'c': 3}
res = [(k,v) for k , v in dic.items()]
print(res)
# [('a', 1), ('b', 2), ('c', 3)]
字典推导式:
ls = [('a', 1), ('b', 2), ('c', 3)]
res = {k:v for k,v in ls}
print(res)
# {'a': 1, 'b': 2, 'c': 3}
案例:
range(10)推导为列表:
res_ls = [arg for arg in range(10)]
print(res_ls)
迭代出可解压的单列容器可以推导出字典
res_dic = {v:k for k,v in enumerate('abd')}
print(res_dic)
三.递归
递归的定义:
递归:回溯与递推
回溯:询问答案的过程
递推:推出答案的过程
递归前提:
回溯到一个有具体结果的值,才能开始递推
回溯与递推的条件要有一定规律
递归的本质:
函数的自我调用(自己调用自己)
递归深度:
递归不是无限的系统默认的递归次数为:1000
可以通过sys模块手动设置,查询递归深度
sys.setrecursionlimit(100) # 手动设置递归深度
sys.getrecursionlimit() # 查询递归深度
递归的两种方式:
自己调用自己:
count = 0
def a():
global count
count += 1
if count > 50:
return
a()
a()
函数间接调用自己:一旦形成循环调用,就产生了递归
def b():
c()
def c():
d()
def d():
b()
b()
案例:
询问第一个人年龄,回溯条件 小两岁,第五个人说出自己的年龄,推导出第一个人年龄
条件:下一个人的年龄比这个人年纪大两岁
def get_age(num): # 得到年龄
if num == 1:
return 58
age = get_age(num - 1) - 2
return age
res = get_age(5)
print(res)
阶乘
5! = 5 * 4! 4! = 4 * 3! ... 2! = 2 * 1
def factorial(num):
if num == 1:
return 1
temp = num * factorial(num - 1)
return temp
res = factorial(5)
print(res)
四.匿名函数
匿名函数:没有函数名,没有函数体,只有一个返回值
关键字:lambda | 参数列表省略() |返回值return关键字也被省略
f = lambda x,y: (x+y,x-y)
应用场景:
1.匿名函数函数地址可以被一个变量接收,该变量就可以作为函数名来使用,但就违背了匿名初衷
2.结合内置函数来使用:内置函数某些参数需要一个函数地址
可以赋值一个有名函数名,也可以直接赋值匿名函数
案例:
ls = [100, 200, 50, 10]
res = max(ls, key=fn)
print('------------------------')
print(res)
res1 = max(ls, key=lambda ele: ele)
print(res1)
DAY14 函数(三)的更多相关文章
- javascript基础程序(算出一个数的平方值、算出一个数的阶乘、输出!- !- !- !- !- -! -! -! -! -! 、函数三个数中的最大数)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python函数知识六 内置函数二、匿名函数与内置函数三(重要)
19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...
- day14函数递归调用
day14函数递归调用 1.装饰器叠加 def deco1(func1): def wrapper1(*args,**kwargs): print('=====>wrapper1 ') res1 ...
- php中的字符串常用函数(三) str_replace() 子字符串替换
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ); 该函数返回一个字 ...
- python学习笔记12(函数三): 参数类型、递归、lambda函数
一.函数参数的类型 之前我们接触到的那种函数参数定义和传递方式叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个对参数的位置和个数都有严格的要求.而在Python中还有一种是通过参 ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- Ext.Js核心函数( 三)
ExtJs 核心函数简介 1.ExtJs提供的常用函数2.get.fly.getCmp.getDom.getBody.getDoc3.query函数和select函数4.encode函数和decode ...
- Python小白学习之路(十八)—【内置函数三】
一.对象操作 help() 功能:返回目标对象的帮助信息 举例: print(help(input)) #执行结果 Help on built-in function input in module ...
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
随机推荐
- [ipsec][strongswan] 用strongswan pki工具生成自签名证书
如题.我在实验环境里,分别要为两个endpoint(T9和T129)生成证书. 证书是如何生成的呢? 证书是由根证书机构签发的.申请证书的人将request提交给根证书机构,然后根证书机构根据requ ...
- ionic1滑动时间选择器
上图: 1.derective代码 .directive('monthPicker', function ($ionicScrollDelegate) { return { restrict: 'E' ...
- 解决IE浏览器兼容问题的一行代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- vue.js 之 watch 详解
接我上篇博客的例子: 在上面代码中,当我们修改 firstName 或 lastName 后,watch 监听每次修改变化的新值,然后计算输出 fullName:此时 watch 的一个缺点是,最初绑 ...
- 安装Linux系统
一.环境准备 1.一个VM虚拟机镜像,一个CentOS-7镜像(注:CentOS-7和CentOS-6在命令上有很大的差别,这里选择CentOS-7版本) 二.开始安装 1.新建一个虚拟机,选择自定义 ...
- threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com/dyuproject/protostuff/MapSchema$MessageFactory] with root cause
错误记录 前几天朋友问我一个错误,顺便记录一下,关于redis 工具类,protostuff序列化报错. threw exception [Handler processing failed; nes ...
- 使用COE脚本绑定SQL Profile
日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...
- Java基础(basis)-----关键字final和static的作用
1.关键字final final修饰类:这个类就不能被继承 final修饰方法:不能被重写 final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...
- Python 函数中,参数是传值,还是传引用?
在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...
- windows 如何创建硬链接
输入代码:mklink /d F:\ D:\pdf mklink /d 是命令语句,空格,接着是放置硬链接的位置,空格,再是目标文件夹.