一、input()和raw_input():

input()支持用户输入数字或表达式,按类型存或存表达式的计算结果

raw_input():输入所有内容当成字符串存

二、lambda函数:匿名函数

lambda只是一个表达式,函数体比def简单的多

lambda的主体是一个表达式,而不是一个代码块。

lambda函数拥有自己的名字空间,且不能访问自由参数列表之外全局名字空间里的参数

lambda会返回一个函数对象,但这个对象不会赋值给一个标识符,而def则会把函数对象赋值给一个变量(函数名)

if或for或print等语句不能用于lambda中 lambda函数不能共享给别的程序调用,def定义的函数可以

语法 :

lambda [arg1[,arg2[,arg3...argn]]]:expression

>>> list1=[lambda a:a**3,lambda b:b**2]

>>> print list1

[<function <lambda> at 0x0000000003449A58>, <function <lambda> at 0x0000000003449AC8>]

>>> print list1[0]

<function <lambda> at 0x0000000003449A58>

>>> print list1[1]

<function <lambda> at 0x0000000003449AC8>

>>> g=list1[0]

>>> g(3)

27

>>> h=list1[1]

>>> h(2)

4

>>> h(4)

16

>>>

三、repr函数

用来取得对象的规范字符串表示。

反引号(也称转换符`)可以完成相同的功能。

注意:大多数时候有eval(repr(object))==object 可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。

四、map函数

将每个列表元素或字符串都执行某个函数

map函数的操作方法:

它将每个字符串或者列表元素,应用某个函数方法,结果返回列表。

将函数func作用于这个seq的每个元素上,并得到一个新的seq.

>>> a=[1,2,3,4]

>>> lista=map(str,a)

>>> print lista ['1', '2', '3', '4']

>>>

>>> map(int,"12345")

[1, 2, 3, 4, 5]

>>>

>>> map(lambda x,y:x+y,[2,4,6],[3,2,1])

[5, 6, 7]

>>>

map函数无法处理seq长度不一致、对应位置操作数类型不一致的情况,会报类型错误。

>>> map(lambda x,y:(x**y,x+y),[2,4,6],[3,2,4,5])  #报错

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "<stdin>", line 1, in <lambda>

TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

>>> map(lambda x,y:(x**y,x+y),[2,4,6],[3,2,4])

[(8, 5), (16, 6), (1296, 10)]

>>>

五、filter函数:

filter()函数可以对序列做过滤处理,就是说可以使用一个自定义的函数,过滤一个序列 ,把序列的每一项传到自定义的过滤函数里处理,并将返回结果做过滤。最终一次性返回过滤后的 结果。

filter()函数有两个参数:

第一个是:自定义函数名,必须的

第二个是:需要过滤的序列,也是必须的

>>> def getsomenum(num):

...     if num>5 and num<10:

...         return num

...

>>> seq=[12,50,6,5,1,3,11,7,9,10]

>>> filter(getsomenum,seq)

[6, 7, 9]

>>>

六、reduce内建函数

reduce内建函数是一个二元操作函数,用来将一个集合(链表,元组等)中的所有数据进行下列 操作:

用传给reduce中的函数func()(必须是一个二元操作函数)先对集合的第1,2个数据进行操作 ,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。(是一个累积的结果)

>>> reduce(lambda x,y:x+y,[1,2,3,4,5])

15

>>>

>>> reduce(lambda x,y:x+y,[1,2,3,4,5],0)  #第一次把0给x,列表给y

15

>>>

>>> def fn(x,y):

...     return x*10+y

...

>>> def char2num(s):

...     return{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[s]

...

>>> reduce(fn,map(char2num,"13579"))

13579

>>>

七、exec函数:

有时候可能会需要动态地创建python代码,然后将其他为语句或作为表达式去执行。

exec语句用来执行存储在字符串或文本中有效的python语句。

>>> exec("print 'hello python'")

hello python

>>>

>>> def printsrt():

...print "hello word"

... >>>

>>> exec("printsrt()")

hello word

>>>

八、eval函数

eval()语句用来计算存储在字符串中的有效Python表达式,并返回计算结果

>>> s="3*4+18"

>>> eval(s)

30

>>>

>>> def printStr():

...     print "hello word"

...     return 1

...

>>> print eval("printStr()")

hello word

1

>>>

>>> a="[[1,2],[3,4],[5,6]]"

>>> print eval(a)

[[1, 2], [3, 4], [5, 6]]

>>> b="{1:'xx',2:'yy'}"

>>> print eval(b)

{1: 'xx', 2: 'yy'}

>>> c="(1,2,3,4)"

>>> print eval(c)

(1, 2, 3, 4)

>>>

>>> list1=[1,2,3,4]

>>> type(`list1`)

<type 'str'>

>>> type(eval(`list1`))

<type 'list'>

>>> print eval(`list1`)

[1, 2, 3, 4]

>>>

九、exec与eval的区别:

exec()和eval()都可以动态的执行存储在字符串或文本中的有效python表达式;

区别:

exec()执行python语句没有返回值;

而eval()有返回值

十、range和xrange的区别:

rang会直接生成一个list对象;

xrange不会直接生成一个list,而是每次调用返回其中的一个值【xrange返回的是一个生成器】

>>> a=range(1,100)

>>> type(a)

<type 'list'>

>>> b=xrange(1,100)

>>> type(b)

<type 'xrange'>

>>>

函数(二):input、raw_input、lambda、repr、map、filter、reduce、eval、exec、range、xrange的更多相关文章

  1. python lambda表达式&map/filter/reduce

    习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 1 2 3 4 5 6 7 8 # 普通条件语句 if 1 == 1:     name = 'wupeiqi' else ...

  2. python 内置函数 map filter reduce lambda

    map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6, ...

  3. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)

    1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...

  4. lambda、map、reduce、filter函数讲解

    # coding:utf-8 """ 几个特殊的函数: lambda lambda后面直接跟变量 变量后面是冒号 冒号后面是表达式,表达式计算结果就是本函数的返回值 作用 ...

  5. python常用函数进阶(2)之map,filter,reduce,zip

    Basic Python : Map, Filter, Reduce, Zip 1-Map() 1.1 Syntax # fun : a function applying to the iterab ...

  6. 如何在python3.3用 map filter reduce

    在3.3里,如果直接使用map(), filter(), reduce(), 会出现 >>> def f(x): return x % 2 != 0 and x % 3 != 0  ...

  7. 数组的高阶方法map filter reduce的使用

    数组中常用的高阶方法: foreach    map    filter    reduce    some    every 在这些方法中都是对数组中每一个元素进行遍历操作,只有foreach是没有 ...

  8. Swift map filter reduce 使用指南

    转载:https://useyourloaf.com/blog/swift-guide-to-map-filter-reduce/ Using map, filter or reduce to ope ...

  9. python几个特别函数map filter reduce lambda

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g = l ...

  10. lambda表达式&map&filter&yield

    一.先来看下lambda表达式 1.lambda表达式其实很简单,他是简单的函数的变种,只有三部分组成,之前老师没有讲清楚,今天看书,终于明白了,写个博客记录下 lambda关键字+参数+返回值,参数 ...

随机推荐

  1. Spring Boot配置大全

    Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到 ...

  2. 网络安全:robots.txt防止向黑客泄露后台地址和隐私目录的写法

    做优化的朋友都知道网站的robots的目的是让搜索引擎知道我们网站哪些目录可以收录,哪些目录禁止收录.通常情况蜘蛛访问网站时,会首先检查你的网站根目录是否有robots文件,如果有,则会根据此文件来进 ...

  3. openCV 备忘

    yum install python-devel numpy cmake gcc gcc-c++yum install gtk2-devel libdc1394-devel libv4l-devel ...

  4. WPF在XAML中实现持续动画的暂停、恢复、停止

    1.动画通过EventTrigger监听按钮的FrameworkElement.Loaded事件,但控件载入时就进行动画, 持续动画通过<BeginStoryboard Name="y ...

  5. javascript扩充基本类型的功能

    可以通过给Function.prototype增加方法来使得该方法对所有函数可用. 通过给Function.prototype增加一个method方法,下次给对象增加方法的时候就不必键入prototy ...

  6. 【回顾】html属性、标题、段落、文本格式化

    1.HTML 属性 HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比如:name="value". HTML 提 ...

  7. 【bzoj3589】动态树 树链剖分+树链的并

    题解: 树链剖分是显然的 问题在于求树链的并 比较简单的方法是 用线段树打标记覆盖,查询标记区间大小 Qlog^2n 代码: #include <bits/stdc++.h> using ...

  8. MongDB-基础

    首先吐槽一下,MongDB用到了JS的引擎,只要涉及到了JS,语法就变得又臭又长,真是无语 还有,MongDB的安装真是麻烦,我用的是win10环境,怎么装都报服务错误,redis一装就可以用,希望m ...

  9. 006.Ceph对象存储基础使用

    一 Ceph文件系统 1.1 概述 Ceph 对象网关是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关 . Ceph 对象存 ...

  10. SpringBoot使用WebJars

    本人主要做的是java,但是从第一份工作开始,就一直在做一个写前端又写后端的程序员,相信很多朋友和我一样,不仅要会后台代码,还要懂得很多的前端代码,例如javascipt和css样式. 本文就为大家简 ...