zoukankan      html  css  js  c++  java
  • 【4】python函数基础

    ---恢复内容开始---

    案例1:时间下一秒程序

    #__author:"吉勇佳"
    #date: 2018/10/14 0014
    #function:
    
    timestr=input("请输入标准的时间,如:21:55:23----->>>:23")
    timeList=timestr.split(":")
    h = int(timeList[0])
    m = int(timeList[1])
    s = int(timeList[2])
    
    s += 1
    if s == 60:
        m += 1
        s=0
        if m==60:
            h += 1
            m=0
            if h == 24:
                h=0
    
    print("%.2d:%.2d:%.2d" %(h,m,s))
    
    
    
    #输出
    '''
    请输入标准的时间,如:21:55:23----->>>:23:59:58
    23:59:59
    '''

    案例2:迭代器的判断与是否可以使用next

    #__author:"吉勇佳"
    #date: 2018/10/14 0014
    #function:迭代器的判断----isinstance
    
    from collections import Iterator
    
    
    print(isinstance("",Iterator))
    print(isinstance([],Iterator))
    print(isinstance((),Iterator))
    print(isinstance({},Iterator))
    print(isinstance((),Iterator))
    print(isinstance((x for x in range(2,10)),Iterator))
    l=(x for x in range(2,10))
    print(next(l))
    print(next(l))
    print(next(l))
    print(next(l))
    
    '''
    输出:
    False
    False
    False
    False
    False
    True
    2
    3
    4
    5
    '''

     两种不定长参数的方法比较。

    案例1:第一种不定长传递参数

    def fun1(name,*others):
        print(name)
        for i in others:
            print(i)
    
    fun1("jiajia",22,"","陕西省渭南市合阳县")
    
    
    '''
    输出:
    jiajia
    22
    男
    陕西省渭南市合阳县
    
    '''

    第二种:不定长传递参数,但是必须是传递一个(x=1,y=2)这种的,在内部转化为字典

    def  fun2(**kwargs):
        print(kwargs)
    
    fun2(a=1,b=2,c=3)
    
    
    '''
    输出:
    {'a': 1, 'b': 2, 'c': 3}
    
    传入以下时候报错。
    fun2(1,2,3)
    '''

    其中:**代表的是键值对的表示方式。

    案例2:匿名函数---lambda

    (1)lambda表达式1

    '''
    特点:
    1、是一个表达式,比较简洁。
    2、不是一个代码块,而是一个表达式,是可以实现一些简繁的逻辑的
    
    '''
    # Num1:直接进行传值的方式
    print((lambda x,y:x+y)(2,3))
    '''
    输出:
    5
    '''
    
    # num2:
    # 例如:一个整数列表,要求按照列表中元素的绝对值大小升序排列
    list1 = [3,5,-4,-1,0,-2,-6]
    sorted(list1, key=lambda x: abs(x))
    # [0, -1, -2, 3, -4, 5, -6]
    
    '''
    同理:
    排序函数sorted支持接收一个函数作为参数,该参数作为 sorted的排序依据,这里按照列表元素的绝对值进行排序。
    当然,我也可以用普通函数来实现:
    '''
    def foo(x):
        return abs(x)
    sorted(list1, key=foo)
    # [0, -1, -2, 3, -4, 5, -6]
    # 只不过是这种方式代码看起来不够 Pythonic 而已。

    (一)、map函数

    map函数代码原型

    map(function,sequence):把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。

    如果function有两个参数,即map(function,sequence1,sequence2)。

    #求1~20的平方
     list(map(lambda x:x*x,range(1,21))) #Python2.x使用map(lambda x:x*x,range(1,21))
    
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]

    (二)、filter函数

     
    #求1~20之间的偶数
     list(filter(lambda x:x%2 == 0,range(1,21))) #Python2.x使用filter(lambda x:x%2 == 0,range(1,21))
    
    [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

    (三)、reduce函数

    需要引入包:

    from functools import reduce
    # reduce 函数
    from functools import reduce
    result=reduce(lambda x,y:x+y ,range(1,101))
    print(result)
    
    '''
    输出:
    5050
    
    相当于先把第一个和第二个数相加,得到的结果又给了第一个参数,第二个参数是第三个数,以此类推
    '''

    ---恢复内容结束---

  • 相关阅读:
    requests
    urllib
    爬虫初入
    Django之admin
    Django之FileField字段
    边学边练之博客园----登录验证
    边学边练之博客园----设计表
    Django之中间件
    计算机基础
    win—命令行窗口一层一层的打开文件
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/9787646.html
Copyright © 2011-2022 走看看