最新公告
  • 欢迎您光临源码库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入
  • Python基础——函数基础和函数参数

    本章节讲述函数的基本用法 ;请您准备好pycharm(电脑)运行工具进行操作

    一、函数的基本内容

    1、函数标准格式

    def 函数名(参数):
        函数接口
        函数体
        return 返回值

    函数名命名规则: 字母、数字和下划线组成,和变量命名规则一致

    return 后面可以返回任意表达式,但不能是赋值语句

    2、函数调用

    函数名(参数)

    def xiaoyan(s):                   
       
        print("我是{}".format(s))     
    xiaoyan('小闫同学')

    注:必须先调用哦

    3.参数

    • 形参:函数没有调用的时候,它没有任何意义;在调用时,必须传入参数,所以也叫必须参数
    • 实参:与形参位置是一一对应的,所以也叫位置参数;缺一不可,缺了或多了都会报错
    def xiaoyan(a, b):                  
        
        print(a, b)                     
    
    xiaoyan("小闫同学",'Welcome to Xiaoyan class')

    输出结果 如图:

     

     如果您没看懂 我们换个简单的例子

    代码:

    def f(x, y):
    
        print("我是{}{}".format(x, y))      #format 类型
    
    f(1, 2)

    输出结果如下图:

    缺少参数时

    此时,他就会报错

     

    多参数时Python基础——函数基础和函数参数插图源码资源库

    他也会报错

     

    重点:

    • 默认参数:不传参,用默认值,传参它也能接收;一定要放在必须参数后面,否则会报错

     

    • 关键字参数

    f(x=1, y=2)

    通过关键字去找对应的必须参数,这样就不需要一一对应了。

    • 动态参数

    一般写法:def f(*args, **kwargs) ;

    *args:调用参数时,所有传入的多余的位置参数都会被args接收生成一个元组;
    **kwargs:函数调用时,多余的关键字参数,都会被kwargs接收,生成一个字典

    Python基础——函数基础和函数参数插图源码资源库

    1. 扩展:为动态参数传入列表、字典、元组

    Python基础——函数基础和函数参数插图源码资源库

    return
    注意 return 和 print 的区别,return是函数的返回值,返回值可以赋值给变量,而print只是打印出来
    二、常用内置函数
    函数名 作用
    len 求长度
    min 求最小值
    max 求最大值
    sorted 排序
    reversed 反向
    enumerate 返回一个可以遍历的对象
    eval 取出字符串的内容,当做表达式进行运算并有返回值
    exec 执行字符串,没有返回值
    filter 过滤器,每个可迭代对象去执行函数,获取满足条件的,不满足的删去
    map 对于可迭代参数,应用函数,结果返回
    zip 配对

    enumerate:

    li = ['a', 'b', 'c']
    
    for i in enumerate(li):
        
        print(i)
    
    print(list(enumerate(li)))

    输出结果:

    Python基础——函数基础和函数参数插图源码资源库

    eval:

    a = "1 + 2 + 3"
    print(eval(a))

    filter:

    def f1(i):
        return i > 10
    
    li = [1, 90, 23, 49, 5]
    print(list(filter(f1, li)))

    输出结果:

    Python基础——函数基础和函数参数插图源码资源库

    map:

    def f1(i):
        
        return i > 10
    
    li = [1, 90, 23, 49, 5]
    
    s = [11, 34, 57]
    
    print(list(map(f1, li)))
    

    输出结果:

    Python基础——函数基础和函数参数插图源码资源库

    注:filter和map的区别是: filter是对对象的筛选,获取的是对象元素,map获取的是表达式的值(True或False)

    zip:

    s1 = [1, 2, 3]
    
    s2 = ['a', 'b', 'c']
    
    a = zip(s1, s2)
    
    print(dict(a))

    输出结果:Python基础——函数基础和函数参数插图源码资源库

    三、作业:    (4套干货哦)

    题目:定义一个函数,对指定数据进行排序,通过参数来决定是正向排序还是反向排序。

    比较简单易懂

    def f(*args, s=1):
        if s == 0:
            print(sorted(args)
    )
        elif s == 1:
            print(sorted(args, reverse=True))
        else:
            print("小可爱!")
    li = [4,2,8,5,10]
    f(*li)            #[10, 8, 5, 4, 2]
    # f(*li, s=0)      #[2, 4, 5, 8, 10]
    # f(*li, s=1)      #[10, 8, 5, 4, 2]
    # f(*li, s=2)      #小可爱!

     

    复杂一些

    #定义个函数,可以对输入的数据进行排序, 通过参数来决定是正向排序还是反向排序。
    y=input('输入数字(数字之间用空格隔开):')
    z=int(input('输入一个整数(偶数为正向排序,奇数为反向排序):'))
    x=y.split(' ')                #对接收的字符串进行切片,得到列表
    x=list(map(eval,x))           #将列表的元素由字符串变成数字
    
    def sort(a,b):
            c=sorted(b)           #正向排序
            if a%2==0:
                print(c)
            else:
                c.reverse()       #逆向排序
                print(c)
    k=sort(z,x)
    y=input('输入数字(数字之间用空格隔开):')
    z=int(input('输入一个整数(偶数为正向排序,奇数为反向排序):'))
    x=y.strip().split(' ')                #对接收的字符串进行切片,得到列表
    x = filter(lambda x:x!='',x)
    try:
        x=list(map(eval,x))   #将列表的元素由字符串变成数字
    except:
        print('输入存在非数字字符')
    def sort(a,b):
            c=sorted(b)           #正向排序
            if a%2==0:
                print(c)
            else:
                c.reverse()       #逆向排序
                print(c)
    k=sort(z,x)
    y=input('输入数字(数字之间用空格隔开):')
    z=int(input('输入一个整数(偶数为正向排序,奇数为反向排序):'))
    x=y.strip().split(' ')                #对接收的字符串进行切片,得到列表
    x = filter(lambda x:x!='',x)
    try:
        x=list(map(eval,x))   #将列表的元素由字符串变成数字
    except:
        raise Exception('输入存在非数字字符')
    def sort(a,b):
            c=sorted(b)           #正向排序
            if a%2==0:
                print(c)
            else:
                c.reverse()       #逆向排序
                print(c)
    k=sort(z,x)

     

     

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

    源码资源库 » Python基础——函数基础和函数参数