day11.2lambda函数表达式 及其返回值注意事项
lambda表达式
用于表示简单的函数
func1=lambda 参数:一句话函数体(默认返回函数体内执行的内容)
1.1结构
func=lambda a1,a2 : a1+100
val=func(1,2)
print(val)
#返回101
#不可变类型变化后形成新的字符串-->lambda内部默认返回执行后的值
#原理类似:
def func(a1,a2):
return a1+100
1.2参数变化(0个到多个)
func1=lambda :100#可不写
func2=lambda a1:a1*10
func3=lambda *args,**kwargs:len(args)+len(kwargs)
1.3参数变量规则
lambda内部不能创建变量,只能调用自己的形参
和函数查找规则一样优先自己=—>父级查找—>全局
DATA=100
func4=lambda a1:a1+DATA
v=func4(1)
print(v)#101
DATA=100
def func():
DATA=1000
func4=lambda a1:a1+DATA
v=func4(1)
print(v)#1001
func()
1.5和三元运算符的结合
func5=lambda n1,n2:n1 if n1>n2 else n2
v=func5(111,2)
print(v)
1.4函数体内返回值注意事项
不可变数据类型的方法会有返回值,因为原始数据不能修改,只能形成一个新的值
可变类型的方法【基本】不会形成新的数据,只会在原始数据上修改,所以这些方法只有默认None返回值
但是集合中的集合运算(交并集等),会形成新的数据 即就是会有返回值
#可变类型
info=[]
def func(X):
v=info.append(X)
return v
print(func("gao"))
#None
#split/intersection/union 等同理
#不可变类型
def func1(x):
v=x.strip()
return v
print(func("gao "))#gao 没有空格
#练习
func1=lambda info:info.split("a")
print(func1("gao"))#["g","o"]
#练习
info=[]
func1=lambda info:info.append("a")
print(func1("gao"))#None
info=[]
func4=lambda a1:info.append(a1)
print(func4(4))
#None
1.5 列表中的lambda函数表达式
func_list=[lambda x:x.strip(),lambda y:y+199,lambda x,y:x+y]
print(func_list[0]("gao "))#gao
print(func_list[1](1))#200
12看代码写结果
def func():
num = 10
v4 = [lambda :num+10,lambda :num+100,lambda :num+100,]
for item in v4:
print(item())
func()
#20
#110
#110
day11.2lambda函数表达式 及其返回值注意事项的更多相关文章
- [Golang]-3 函数、多返回值、变参、闭包、递归
// test01 project main.go package main import ( "fmt" ) // 单返回值的函数 func plus(a int, b int) ...
- 【C语言入门教程】5.1 函数说明 与 返回值
C 语言是结构化语言,它的主要结构成分是函数.函数被作为一种构件,用以完成程序中的某个具体功能.函数允许一个程序的各个任务被分别定义和编码,使程序模块化.本章介绍 C 语言函数的设计,如何用函数分解程 ...
- 关于fork( )函数父子进程返回值的问题
fork()是linux的系统调用函数sys_fork()的提供给用户的接口函数,fork()函数会实现对中断int 0x80的调用过程并把调用结果返回给用户程序. fork()的函数定义是在init ...
- linux shell自定义函数(定义、返回值、变量作用域)介绍
http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...
- C++ 需要返回值的函数却没有返回值的情况 单例模式
昨天在看前些天写的代码,发现一个错误. #include <iostream> using namespace std; class singleton { public: static ...
- 函数指针的返回值是指针数组,数组里放的是int;函数指针的返回值是指针数组,数组里放的是int指针
函数指针的返回值是指针数组,数组里放的是int 函数指针的返回值是指针数组,数组里放的是int指针 #include <stdio.h> #include <stdlib.h> ...
- python函数进阶(函数参数、返回值、递归函数)
函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...
- C语言中赋值表达式的返回值是什么?
我们或多或少都有过,或者见过将赋值表达式参与运算的情况.这通常会伴随着一些意想不到的问题.今天我就见到了一段奇怪的代码: #include<stdio.h> int main() { ; ...
- 9 - Python函数定义-位置参数-返回值
目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...
随机推荐
- MYSQL查询操作 详细
学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...
- Android 音视频深入 十七 FFmpeg 获取RTMP流保存为flv (附源码下载)
项目地址https://github.com/979451341/RtmpSave 这个项目主要代码我是从雷神那弄过来的,不愧是雷神,我就配个环境搞个界面就可以用代码了. 这一次说的是将RTMP流媒体 ...
- node-express-1
安装: express v4.0以后的安装: npm install express-generator -g 建立项目 express -t ejs blog 安装依赖 cd blog && ...
- 从SQLServer转储数据到MySQL
前一段时间,由于项目需要将数据库从SQLServer迁移到MySQL,在网上百度了很久,基本都是通过SQLyog实现的.其实使用平时常用的数据库管理软件Navicat Premium也能做到,并且操作 ...
- OpenCV3如何使用SIFT和SURF Where did SIFT and SURF go in OpenCV 3?
Installation and Usage If you have previous/other version of OpenCV installed (e.g. cv2 module in th ...
- MySQL中MyISAM与InnoDB区别
原文:https://blog.csdn.net/frycn/article/details/70158313?utm_source=copy InnoDB:支持事务处理等不加锁读取支持外键支持行锁不 ...
- linux 普通用户批量创建账户与密码
#!/bin/bash # add user imp - # by imp # ) do useradd imp$i echo "$i" |passwd --stdin imp$i ...
- hosts 添加主机和ip映射
背景:在服务器搭建环境时,迁移项目后,停止服务出现以下问题. 原因:项目停止或启动找不到映射名称或服务. 解决:修改hosts文件.hosts文件地址 /etc/hosts 添加主机和 ...
- ansible-play中for,if的使用
#迭代循环的使用 #实现同时新建三个文件,同时部署三个服务 --- - host: websrvs remote_user: root task: - name: create some files ...
- C语言作业(心理魔术)
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include &q ...