函数, lambda表达式
函数
- 函数:简单的理解,就是一次执行很多行代码
- 函数的返回值
- 函数的参数,和变量没区别
例:
def hello():
print "hello world"
hello()
hello()
打印结果:
hello world
hello world
返回值:
def hello():
print "hello world"
print hello # 指函数,就是函数在内存里的一个地址.
print hello() # 指函数返回值
def hello():
# print "hello world"
return 2017
hello
print hello() 2017
参数:
def hello(name):
print "Hello %s" % name
return 2017
hello("yangbin")
print hello("asd")
执行结果:
Hello yangbin
Hello asd
2017
print是打印出来看.
return是返回值.
5阶乘, 54321
f(n)
def f(num):
for i in range(1, int(num)+1):
count = i * int(num)
print count
f(5)
执行结果:
5
10
15
20
25
关键字参数的调用,和位置无关,只和名字相关:
def hello(name,age):
return name,age
print hello("yangbin", 22)
print hello(age = 22, name = "yangbin")
执行结果:
('yangbin', 21)
('yangbin', 22)
使代码更健壮:
def hello(name = "yangbin",age = 22):
return name,age
print hello("yangbin", 22)
print hello()
执行结果:
('yangbin', 22)
('yangbin', 22)
参数不固定的时候:
关键字参数调用的时候,可读性好
关键字参数在函数定义的时候,提供默认值
开头的参数,收集所有剩下参数(位置参数) 元组
开头的参数,收集所有剩下参数(关键字参数) 字典
1.多个函数之间,尽量避免全局变量
通用的函数:变化的东西,都由参数来定
函数当成参数传递
python自带的sorted函数
sorted(待排序的list,key传递一个函数-决定根据元素的哪个属性进行排序)
http://blog.csdn.net/zyl1042635242/article/details/43115675
函数当成参数,传给了sorted
lambda 就是没有名字的函数(特别简单的,只有return语句的函数)
语法:
lambda 参数:返回值
示例:
def hello(x):
return x[1]
print hello([2,3])
hello = lambda x:x[1]
print hello([2,3])
执行结果:
3
3
函数作用域:
函数内部的变量和全局变量不是在一个区域里的,函数内部变量,现在函数内部找,找不到才会去全局找
函数内部作用域赋值,对外部无影响
函数内部想修改全局变量,要用global声明一下
get()函数:
get() 函数返回指定键的值,如果值不在字典中返回默认值。
语法:
dict.get(key, default=None)
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该默认值。
get()和setdefault()的区别:
一. get 函数 -- 获得给定键相关联的值
dict = {'name':'lorine','age':'25'}
dict.get('name') # 返回name对应的键值lorine,如果此键不存在字典中,则会返回None;
dict.get('work','student') # 如果对应的键'work'不在字典中,则会返回默认的'student'
二. setdefault 函数 -- 获得给定键相关联的值,并更新字典,还能在字典中不含有给定键的情况下设置相应的键值
dict = {'name':'lorine','age':'25'}
dict.setdefault('name') # 或者dict.setdefault('name','lili')都是返回name对应的值lorine;
dict.setdefault('work') # 此键值不存在,则更新字典添加此键和默认值dict ={'name':'lorine','age':'25','work':None};
dict.setdefault('work','student') # 则更新字典dict ={'name':'lorine','age':'25','work':'student'};
用get函数优化代码:
D = {"192.168": 2}
ip = "192.168"
# if ip in D:
# D[ip] += 1
# else:
# d[ip] = 1
# print D
res = {}
res[ip] = D.get(ip, 0) + 1
print res
遍历list的三种方法:
num = [1, 2, 3, 4, 5, 6]
for i in num:
print i
for i in range(len(num)):
print num[i]
for i,j in enumerate(num):
# print i, j
print j
遍历dict的两种方法:
info = {"name": "yangbin", "age": 22, "sex": "male"}
for i in info.keys():
print i, info[i]
for k,v in info.items():
print k,v
三元运算: 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即:
if 12 > 20:
print "True"
else:
print "False"
result = "True" if 12 > 20 else "False"
print result
运行结果:
False
False
lambda表达式: 对于简单的函数,也存在一种简便的表示方式,即:lambda表达式.
# 普通函数表示:
def f(num):
return num + 1
# print f(20)
result = f(20)
print result
# lambda表达式表示:
定义函数
my_lambda = lambda args: args + 1
执行函数
result = my_lambda(20)
print result
函数, lambda表达式的更多相关文章
- 函数:lambda表达式 - 零基础入门学习Python021
函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...
- 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式
[学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- 匿名函数 lambda表达式(lambda expression)
阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call = [this, log_directory]() {return pimpl_->backgroundChang ...
- Python匿名函数——lambda表达式
如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下: lambda parameters: expression lambda表达式 ...
- python内置函数,lambda表达式,文件读写
Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排 ...
- (28)C#委托,匿名函数,lambda表达式,事件
一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...
- Qt中使用匿名函数lambda表达式
一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...
- 高阶函数-lambda表达式
#2.6 map()# 第一个参数传入一个函数,,第二个参数为一个可迭代对象li_1 = (1,3,5,7)def funcA(x): return x*xm1 = map(funcA,li_1)pr ...
- python学习day11 函数Ⅲ (内置函数与lambda表达式)
函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...
随机推荐
- 关于html中利用jQuery选择子节点方法总结——待续
好几次碰到类似的要求,每次用的都不一样,在之前的面试的时候就被问到,突然觉得虽然自己做过但是说不出头绪,只能回答什么parent(),next()等等.所以想整理一下. 1.需求一:同页面有两个表格, ...
- Xamarin自定义布局系列——PivotPage,多页面切换控件
PivotPage ---- 多页面切换控件 PivotPage是一个多页面切换控件,类似安卓中的ViewPager和UWP中的Pivot枢轴控件. 起初打算直接通过ScrollView+StackL ...
- 关于数据库与JAVA连接及其出现问题的解决方式
数据库连接java的方式一共有两个 建立JDBC-ODBC桥接器 加载纯JAVA数据库驱动程序 注意: JDBC-ODBC桥接器无需下载数据库的驱动程序,但是JDK1.8已经把JDBC-ODBC桥接器 ...
- docker工作流程
Docker提供一种方法在容器中运行安全隔离的应用程序,应用程序与所有依赖项和库一起打包在容器中.因为你的应用程序总是可以使用它在构建镜像中期望的环境运行,测试和部署比以往任何时候都更简单,因为你的构 ...
- C++枚举类型详解
原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5171110.html 一.枚举类型的定义 enum 类型名 {枚举值表}: 类型名是变量名,指定 ...
- 通用数据库帮助类DBHelper(含log日志信息实时记录)
项目需要,需要一个通用的数据库操作类,增删改查.事务.存储过程.日志记录都要有,于是在已有的帮助类上做了一些改进,并将log4j的.NET版--log4net嵌入其中记录sql的执行环境和状态. 用起 ...
- 基于CDIF实现的——API在线自动化测试
传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的API,他接收两个输入字段,一个叫flight, 一个叫date,那么测试这个API的用户,需要 ...
- 利用NSURLSession下载视频,图片,能实现断点续传
首先分析下载资源到本地,就得有URL ,点击btn ,就会解析网络地址,获取数据,就得有进度条控件 NSURLSession类的实现,通过委托代理模式去实现一些方法,需遵守<NSURLSessi ...
- git commit -m与-am的区别
前面的话 使用git commit -am是不是就可以完全不使用git add命令呢?不是 理论 要了解git commit -m与git commit -am的区别,首先要明白它们的定义 字面解释的 ...
- 华为C语言编程规范笔记1
入职之前,公司培训,做了点笔记~