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 可变关键字 ... 
随机推荐
- S2T40,第四章,简答5
			using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ... 
- C# [GDI+] [API] Get Image bytes Length
			MemoryBMP "{b96b3caa-0728-11d3-9d7b-0000f81ef32e}" 2 Bmp "{b96b3cab-0728-11d3-9d7b-00 ... 
- font awesome 页面小图标
			font awesome 页面小图标 前段时间做页面,从网上查找资料,发现了一个好用的工具,就是font awesome奥森图标,使用了一下,发现非常方便,而且很灵活,纯css编写,可以和bootst ... 
- c#基础之异常处理及自定义异常
			一.什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分.c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类 ... 
- leetcode python 033 旋转数组查找
			## 假设升序,import random def find(y): l,m=len(y),0 while l>1: n=int(l/2) if y[0] ... 
- using Newtonsoft.Json;
			using Newtonsoft.Json; //数组转义为json string result = JsonConvert.SerializeObject(list1); //josn转 ... 
- SQL-50 将employees表中的所有员工的last_name和first_name通过(')连接起来
			题目描述 将employees表中的所有员工的last_name和first_name通过(')连接起来.CREATE TABLE `employees` (`emp_no` int(11) NOT ... 
- springboot 热部署
			1 pom文件添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ... 
- Java 平时作业三
			自定义一个可以存储 int 类型的集合类(例如:SequenceList),封装一维数组存储数据,该 集合类具有以下方法: (1)新增元素: (2)在指定位置插入一个元素: (3)按位置删除元素: ( ... 
- hive lock命令的使用
			1.hive锁表命令 hive> lock table t1 exclusive;锁表后不能对表进行操作 2.hive表解锁: hive> unlock table t1; 3.查看被锁的 ... 
