函数

  • 函数:简单的理解,就是一次执行很多行代码
  • 函数的返回值
  • 函数的参数,和变量没区别

例:

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表达式的更多相关文章

  1. 函数:lambda表达式 - 零基础入门学习Python021

    函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...

  2. 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式

    [学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  3. 匿名函数 lambda表达式(lambda expression)

    阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call =  [this, log_directory]() {return pimpl_->backgroundChang ...

  4. Python匿名函数——lambda表达式

    如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下: lambda parameters: expression lambda表达式 ...

  5. python内置函数,lambda表达式,文件读写

    Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排 ...

  6. (28)C#委托,匿名函数,lambda表达式,事件

    一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...

  7. Qt中使用匿名函数lambda表达式

    一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...

  8. 高阶函数-lambda表达式

    #2.6 map()# 第一个参数传入一个函数,,第二个参数为一个可迭代对象li_1 = (1,3,5,7)def funcA(x): return x*xm1 = map(funcA,li_1)pr ...

  9. python学习day11 函数Ⅲ (内置函数与lambda表达式)

    函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...

随机推荐

  1. 多线程爬坑之路-ThreadLocal源码及原理的深入分析

    ThreadLocal<T>类:以空间换时间提供一种多线程更快捷访问变量的方式.这种方式不存在竞争,所以也不存在并发的安全性问题. This class provides thread-l ...

  2. String.format()的总结

    JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的spri ...

  3. javaScript事件(六)事件类型之滚轮事件

    滚轮事件其实就是一个mousewheel事件,这个事件跟踪鼠标滚轮,类似Mac的触屏版. 一.客户区坐标位置 鼠标事件都是在浏览器视口的特定位置上发生的.这个位置信息保存在事件对象的clientX和c ...

  4. 技术方案:在外部网址调试本地js(基于fiddler)

    1 解决的问题 1)        场景1:生产环境报错 对前台开发来说,业务逻辑都在js中,所以报错90%以上都是js问题. 如果生产环境出现报错,但是测试环境正常.这时修改了代码没有环境验证效果, ...

  5. 对VC++6.0爱得深沉(一)安装vc++6.0,支持winXP,win7,win8.1,win10

    [欢迎入坑] 从这里起,我称VC++6.0为小c. 为什么我对小c爱得深沉? 虽然饱受非议,但是,我只想说,我太单纯,小c轻轻松松成功运行在各个win平台,对于我来说她:高速.小巧.便捷.听话.可定制 ...

  6. 时间相关库<ctime>解析

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5649487.html 一.定义的类型 1.clock_t:时钟类型 2.size_t:unsign ...

  7. iwebshop上传类的使用

    $upload = new IUpload('10240000',array('jpg','gif','png')); $dir = "upload/dian"; $upload- ...

  8. Unity - 通过降低精度减少动画文件的大小

    Animation是Unity中的动画文件,主要内容由一个个关键帧数据构成.通过将Unity的资源序列化方式调整为Text,就可以以文本方式查看动画文件.通过菜单项Edit -> Project ...

  9. jenkins+docker+maven+svn

    环境介绍 1.        软件需求 Jenkins  本次实验所用版本1.5.1 下载链接:https://jenkins.io/index.html Docker 本次实验所用版本 17.03. ...

  10. 老李分享:Web Services 特性 1

    老李分享:Web Services 特性   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9 ...