精华内容
下载资源
问答
  • pythonreturn

    2019-01-07 00:19:00
    关于pythonreturn用法,在stackoverflow的问题: Python — return, return None, and no return at all Consider three functions: def my_func1(): print "Hello World" return None def my_func2()...

    关于python的return用法,在stackoverflow里的问题:

    Python — return, return None, and no return at all

    Consider three functions:

    def my_func1():
      print "Hello World"
      return None
    
    def my_func2():
      print "Hello World"
      return
    
    def my_func3():
      print "Hello World"

    On the actual behavior, there is no difference. They all return None and that's it. However, there is a time and place for all of these. The following instructions are basically how the different methods should be used (or at least how I was taught they should be used), but they are not absolute rules so you can mix them up if you feel necessary to.

    Using return None

    This tells that the function is indeed meant to return a value for later use, and in this case it returns None. This value None can then be used elsewhere. return None is never used if there are no other possible return values from the function.

    In the following example, we return person's mother if the person given is a human. If it's not a human, we return None since the person doesn't have a mother (let's suppose it's not an animal or so).

    def get_mother(person):
        if is_human(person):
            return person.mother
        else:
            return None
    

    Note: You should never do var = get_mother(), since let us assume var is a dictionary and you iterate by var.items() it will give an error citing None has no method items(). It you intentionally return None then it must be taken care of in the calling function appropriately.

    Using return

    This is used for the same reason as break in loops. The return value doesn't matter and you only want to exit the whole function. It's extremely useful in some places, even tho you don't need it that often.

    We got 15 prisoners and we know one of them has a knife. We loop through each prisoner one by one to check if they have a knife. If we hit the person with a knife, we can just exit the function cause we know there's only one knife and no reason the check rest of the prisoners. If we don't find the prisoner with a knife, we raise an the alert. This could be done in many different ways and using return is probably not even the best way, but it's just an example to show how to use return for exiting a function.

    def find_prisoner_with_knife(prisoners):
        for prisoner in prisoners:
            if "knife" in prisoner.items:
                prisoner.move_to_inquisition()
                return # no need to check rest of the prisoners nor raise an alert
        raise_alert()
    

    Note: You should never do var = find_prisoner_with_knife(), since the return value is not meant to be caught.

    Using no return at all

    This will also return None, but that value is not meant to be used or caught. It simply means that the function ended successfully. It's basically the same as return in void functions in languages such as C++ or Java.

    In the following example, we set person's mother's name, and then the function exits after completing successfully.

    def set_mother(person, mother):
        if is_human(person):
            person.mother = mother
    

    Note: You should never do var = set_mother(my_person, my_mother), since the return value is not meant to be caught.

    转载于:https://www.cnblogs.com/space-place/p/10231164.html

    展开全文
  • 函数定义过程中,没有给定名称函数,python中用lambda表达式创建匿名函数 lambda只是一个表达式,函数体比def简单 lambda主题是一个表达式,又有自己的命名空间,不能范文自有参数列表之外或者全局命名空间参数2....

    匿名函数用法

    1.什么是匿名函数
        函数定义过程中,没有给定名称函数,python中用lambda表达式创建匿名函数
        lambda只是一个表达式,函数体比def简单
        lambda主题是一个表达式,又有自己的命名空间,不能范文自有参数列表之外或者全局命名空间里参数
    2.匿名函数的用法
        命名规则 lambda 参数列表:表达式
        num=lambda a,b:a+b
        print(num(1,2))
        简单应用1

            #四则运算——利用lambda表达式  
                def operation(a,b,opt):  
                    re = opt(a,b)  
                    return re  
                num1 = int(input("请输入第一个字符:"))  
                num2 = int(input("请输入第二个字符:"))  
                result = operation(num1,num2,lambda a,b:a+b)  
                print(result)  


        简单应用2

            #列表中的字典元素进行排序——lambda表达式  
                students = [  
                    {"name":"Joe","age":"18"},  
                    {"name":"Tom","age":"20"},  
                    {"name":"Susan","age":"16"}  
                ]   
                students.sort(key=lambda x:x["name"])       #对字典按照关键字name排序  
                print(students)  


    return语句
        return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,以下实例演示了 return 语句的用法:

            #!/usr/bin/python3
            # 可写函数说明
            def sum( arg1, arg2 ):
               # 返回2个参数的和."
               total = arg1 + arg2
               print ("函数内 : ", total)
               return total
            # 调用sum函数
            total = sum( 10, 20 )
            print ("函数外 : ", total)

        以上实例输出结果:
            函数内 :  30
            函数外 :  30

    转载于:https://www.cnblogs.com/mysterious-killer/p/10126915.html

    展开全文
  • python map函数用法

    2021-06-03 09:22:17
    了解了map“名”的含义,接着来看python里map()的用法 先看实例 def fun(x): return x**2 listq=[1,2,3,4,5,6,7,8,9] print(map(fun,listq) #结果 <map object at 0x000001D7065FE8E0> 这里需要说明的是,...

    maping 在数学上翻译为映射,映射也就是两个非空集合元素的对应,但是和函数(一对一映射或多对一映射。)还是不同的,函数一定是映射,但是映射不一定是函数。

    了解了map“名”的含义,接着来看python里map()的用法
    先看实例

    def fun(x):
        return x**2
    listq=[1,2,3,4,5,6,7,8,9]
    print(map(fun,listq)
    #结果 <map object at 0x000001D7065FE8E0>
    

    这里需要说明的是,python2直接返回的是一个List,但是python返回的是一个迭代器Iterator(为了解决内存资源),所以在python3中能正常显示,加一个遍历即可。

    def fun(x):
        return x**2
    listq=[1,2,3,4,5,6,7,8,9]
    for i in map(fun,listq):
        print(i)
        #1
    	#4
    	#9
    	#16
    	#25
    	#36
    	#49
    	#64
    	#81
    

    map()是内置函数。主要接手两种参数,一个是定义的函数,一个是可迭代的序列。通过map映射,把序列的元素一一映射到定义的函数上得到新的一个对象。

    展开全文
  • python lambda表达式用法

    2021-01-23 21:44:40
    先举一个例子:将一个列表的每个元素都平方。 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lambda函数来编写代码 map(lambda x: x*x,[y for y in range(1

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。

    1.为什么要用lambda函数?

    先举一个例子:将一个列表里的每个元素都平方。

    先用def来定义函数,代码如下

    def sq(x):
    return x*x

    map(sq,[y for y in range(10)])
    再用lambda函数来编写代码

    map(lambda x: x*x,[y for y in range(10)])
    从这个简单的例子,我们可以看出,用lambda函数首先减少了代码的冗余,其次,用lambda函数,不用费神地去命名一个函数的名字,可以快速的实现某项功能,最后,lambda函数使代码的可读性更强,程序看起来更加简洁。

    从上面这个简单的例子,也可以看出来lambda函数的语法是唯一的,其形式如下:

    lambda argument_list:expersion
    语法中的argument_list是参数列表,它的结构与Python中函数(function)的参数列表是一样的,例如

    a,b
    a=1,b=2
    *args
    **kwargs
    a,b=1,*args


    语法中的expression是一个关于参数的表达式,表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。比如以下的一些合法的表达式

    1
    None
    a+b
    sum(a)
    1 if a >10 else 0

    除了上面提到的lambda函数的优点外,我看有的文章说用lambda函数会提高效率,那究竟是不是呢?我们写一段代码来验证一下

    import time

    测试的Def函数

    def square1(n):
    return n ** 2

    测试的Lambda函数

    square2 = lambda n: n ** 2

    print(time.time())

    使用Def函数

    i = 0
    while i < 1000000000:
    square1(100)
    i += 1

    print(time.time())

    使用lambda函数

    i = 0
    while i < 1000000000:
    square2(100)
    i += 1

    print(time.time())

    1413272496.27
    1413272703.05 (Def 函数:207s)
    1413272904.49 (Lambda函数:201s)
    从上面可以看出,两种的所需的时间差不多,效率丝毫不受影响。

    2.lambad函数的用法上面也讲到了匿名函数的优点,那它到底有哪些用处呢?

    (1)直接赋给一个变量,然后再像一般函数那样调用

    c=lambda x,y,z:xyz
    c(2,3,4)

    24
    当然,也可以在函数后面直接传递实参

    (lambda x:x**2)(3)
    9
    (2)将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用,下面举例说明。

    fliter(lambda x:x%3==0,[1,2,3,4,5,6])

    [3,6]

    squares = map(lambda x:x**2,range(5)
    print(lsit(squares))
    [0,1,4,9,16]
    与sorted函数结合使用,比如:创建由元组构成的列表:

    a=[(‘b’,3),(‘a’,2),(‘d’,4),(‘c’,1)]
    按照第一个元素排序

    sorted(a,key=lambda x:x[0])
    [(‘a’,2),(‘b’,3),(‘c’,1),(‘d’,4)]
    按照第二个元素排序

    sorted(a,key=lambda x:x[1])
    [(‘c’,1),(‘a’,2),(‘b’,3),(‘d’,4)]
    与reduce函数结合使用

    from functools import reduce
    print(reduce(lambda a,b:’{},{}’.format(a,b),[1,2,3,4,5,6,7,8,9]))

    1,2,3,4,5,6,7,8,9
    (3)嵌套使用将lambda函数嵌套到普通函数中,lambda函数本身做为return的值

    def increment(n):
    return lambda x:x+n

    f=increment(4)
    f(2)
    6
    (4)字符串联合,有默认值,也可以用x=(lambda…)这种格式

    x=(lambda x=‘Boo’,y=‘Too’,z=‘Z00’:x+y+z)
    print(x(‘Foo’))

    ‘FooTooZoo’
    (5)在tkinter中定义内联的callback函数

    import sys
    from tkinter import Button,mainloop

    x=Button(text=‘Press me’,command=(lambda :sys.stdout.write(‘Hello,World\n’)))
    x.pack()
    x.mainloop()
    这段代码还是挺有意思的,希望小伙伴们可以复制粘贴运行一下哈。(6)判断字符串是否以某个字母开头有

    Names = [‘Anne’, ‘Amy’, ‘Bob’, ‘David’, ‘Carrie’, ‘Barbara’, ‘Zach’]
    B_Name= filter(lambda x: x.startswith(‘B’),Names)
    print(B_Name)

    [‘Bob’, ‘Barbara’]
    (7)求两个列表元素的和

    a = [1,2,3,4]
    b = [5,6,7,8]
    print(list(map(lambda x,y:x+y, a,b)))

    [6,8,10,12]
    (8)求字符串每个单词的长度

    sentence = “Welcome To Beijing!”
    words = sentence.split()
    lengths = map(lambda x:len(x),words)
    print(list(lengths))
    [7,2,8]
    总结

    对于lambda函数的使用在Python社区一直存在争议,支持一方认为lambad函数的使用,使得Python代码更加紧凑,更加Pythonic;反对方则认为Python的lambda函数限制多多,最严重的当属于它只能由一条表达式组成,用多了以后反而使得程序看起来不那么清晰。

    但我个人觉得作为一个Python的初级用户,lambda函数确实让编码更简洁,更省事,一句话好用就行,其余的看神仙打架吧!

    转载自知乎主要是用来自己看如果有侵权请联系删除,谢谢。这里放一下大佬的链接
    知乎-小包总-细说Python的lambda函数用法

    展开全文
  • python中yield用法

    2016-06-17 10:33:40
    yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行。也就是说,yield返回函数,交给调用者一个...
  • Python return 语法那些坑

    千次阅读 2019-10-22 20:45:30
    刚刚行政部门同事来问 Python return用法,说他自己敲代码的时候跟网课讲得不太一样,问我为什么,我整理之后记录如下。(BTW,连行政同学都在学 Python了,这是要抢饭碗啊啊) 情况一、 1、三个颜色的...
  • 参数:根据函数功能,括号可以有多个参数,也可以不带参数,命名规则与函数名相同 规范:括号是英文括号,后面的冒号不能丢 函数体:函数体就是体现函数功能的语句,要缩进,一般是四个空格 #定义了一个介绍...
  • Python基础——函数用法 1. 函数的定义与调用 定义 1、函数代码块使用 def关键字开头定义,后面跟上函数名称和 ( ),后面再接上冒号。 2、任何传入的参数都应该放到括号里面。 3、第二行开始函数里面的内容使用...
  • Python高级用法之yield关键字

    千次阅读 2018-10-11 12:59:42
    很多blog里面说,yield关键字和return关键字非常类似。只不过yield关键字更复杂一点。 我们都知道,return就是返回一个值,一般位于函数的末尾(或者说,作为函数结束的标志)。只要函数运行到return,那么这个函数的...
  • 本文实例讲述了python获取一组数据最大值max函数用法。分享给大家供大家参考。具体如下: # 最简单的 max(1, 2) max('a', 'b') # 也可以对列表和元组使用 max([1,2]) max((1,2)) # 还可以指定comparator function...
  • 先举一个例子:将一个列表的每个元素都平方。 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lambda函数来编写代码 map(lambda x: x*x,[y for y in range(10)]) ...
  • python中finally的用法

    2020-08-16 16:12:30
    那要是遇到了return,break和exit()等语句 也依旧会执行fianlly里面的代码吗? 让我们再看下面一个例子: 是不是觉得很奇怪?为什么输出的是2不是1。 以下内容来自Python官方文档Defining Clean-up A
  • Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda...先用def来定义函数,代码如下def sq(x):return x*xmap(sq,[y for y in range(10)])再用la...
  • python中yield的用法

    2019-01-02 10:51:00
    ---"在python中,当你定义一个函数,使用了yield关键字时,这个函数就是一个生成器" (也就是说,只要有yield这个词出现,你在用def定义函数的时候,系统默认这就不是一个函数啦,是一个生成器啦!!不管里面内容你写成...
  • # -*- coding: UTF-8 -*- #using of map ... return num + 2 lt = [1,2,3,4] rs = map(add, lt) print rs #[3, 4, 5, 6] rs2 = map(str, lt) print rs2 #['1', '2', '3', '4'] #decimal control f
  • 第一次学是2019年的时候,但是不经常用的话,忘的也快。再次复习一下,共勉,加油,祝你好运!!! 本次操作为:jupyter notebook环境 一、lambda,map lambda: 1.只是一个表达式 ... return x print(g(3)) la
  • Python中的yield用法

    2019-05-06 12:00:58
    yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行。也就是说,yield返回函数,交给调用者一个...
  • return x+y print(add(1,2)) #3 f=lambda x,y:x+yprint(f(1,2)) 上面这两段代码实现的功能是完全一样的。第二段代码里面:lambda x,y:x+y 这就是一个函数,由于没有函数名称,所以称匿名函数。 下面仔细...
  • python的else和with用法

    2019-10-24 18:19:04
    python中else一共有三种用法: 1.if...else; (如果满足条件就。。。否则。。。) for/while...else; (如果循环顺利执行,就执行else) try...except...else;(如果try里面没有异常,就执行else) 2.python...
  • Python中def的用法

    千次阅读 2015-05-29 22:09:00
    def func(): return 2print func() # 1func = 5print func # 5print func() # 错误!函数对象已经被覆盖了 在同一模块,函数在未被定义前是不能使用的,因为它是在“运行时”定义的:print func() # 错误!函数未...
  • Python中有两种函数,一种是def定义的函数,另一种是lambda函数,...先举一个例子:将一个列表的每个元素都平方。 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lamb
  • python中的函数 一、函数的定义:函数是组织好的,可以重复调用的代码块,函数能够提高应用的模块性和代码的重复利用率 二、函数的应用场景:一般代码块,需要多次使用时,需要封装在函数里面 三、函数的定义格式和...
  • Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说...先举一个例子:将一个列表的每个元素都平方。 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in rang...
  • 在函数里面把return换成yield就可以得到一个生成器函数,用于迭代。 就这作用吧 其他都是介绍怎么用的吧 对于yield的总结 通常的for ... in ..循环中,后面的是一个列表或者是字典,或者是字符串.它的缺点是很...
  • 出处getattr是python里的一个内建函数,在python的官方文档中:getattr()的解释:getattr(object, name[, default])Return the value of the named attribute of object. name must be a string. If the string is ...
  • python 里面列表前面加星号的意思

    千次阅读 2019-05-01 21:46:13
    python 里面列表前面加星号, add([1,5])这是什么用法? 例如 from operator import add add([1,5]) 6 作用是将列表解开成两个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。 # -...
  • return obj print("---->") return wrappers @Typed(x=2) def Text(): pass 函数2 def Typed2(func): def wrappers(): print("=======>") func() # return res print("---->") return ...
  • yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行。也就是说,yield返回函数,交给调用者一个...
  • python函数中的参数*args和**kwargs的含义和用法

    千次阅读 多人点赞 2018-06-05 23:28:50
    python函数中的参数*args和**kwargs的含义和用法python语言写成的模块中的函数,常常可以看到函数的参数表列里面有这两个参数,形如: def some_function(*args, **kwargs): to do list return 0 首先,...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

python里return用法

python 订阅