• 函数


    #!/usr/bin/env python
    # -*- coding=utf-8 -*-
    '''
    函数 - 将要实现某个功能的代码放在一起,组成一个的模块
    格式:
    定义一个函数:
    def 函数名(参数1,参数2...):
        实现功能代码
        return 返回值  函数遇到return后就不会再运行return后面的代码
        如果没有写return,则返回None
    
    调用函数:
    函数名() #没有返回值
    变量 = 函数名() #有返回值的函数,定义一个变量接收返回值
    
    实参:实际参数,指的是调用函数的时候传进去的值
    形参:形式参数,指的是函数定义的时候的参数
    
    给函数传递信息的时候将实际参数交给形式参数的过程叫做传参
    
    形参:
        1、位置参数:
        2、默认参数:当一个参数的值重复出现的时候,可以设置一个默认值
        默认参数必须放在位置参数之后
        3、动态参数 -- (补充)
    实参:
        1、位置参数:按照形参的变量的顺序依次写对应的值
        2、关键字参数:使用关键字=值的形式赋值,不需要按顺序
        3、混合参数:1.2的混合,位置参数必须在关键字参数之前
    '''
    # 无参数无返回值
    def num_1():
        print("我是无参数无返回值函数")
    num_1()
    
    #无参数有返回值
    def num_2():
        return 1 #返回1
    print(num_2())
    
    #有参数无返回值
    def num_3(a):
        print(a)
    num_3(2)
    
    #有参数有返回值
    def num_4(a,b):
        return a if a > b else b #三目运算符  结果1 if 条件 else 结果2  if条件成立返回结果1,否则返回结果2
    print(num_4(3,4))
    
    # --------形参---------
    def message(name,age,address): # 形参 - 位置参数
        print('名字是'+name+'年龄是:'+str(age)+'地址是:'+address)
    
    def message_1(name,age,sex = ''): # 形参 -  sex是默认参数 不写默认是男
        print('名字是'+name+'年龄是:'+str(age)+'性别是:'+sex)
    
    # -------实参---------
    message('',12,'北京') #位置参数
    message(name='',address='北京',age=18) # 关键字参数
    message('liang',age=18,address='bj') #混合参数
    
    # 形参中的默认参数中 如果不写默认是'男'
    message_1('xiao',12) # 名字是xiao年龄是:12性别是:男

    注意:默认参数如果是一个可变数据类型:

    def defult_param(a,l = []):
        l.append(a)
        print(l)
    
    defult_param('alex') #['alex']
    defult_param('egon') # ['alex', 'egon']
    defult_param('123',[]) # ['123']

     补充:

    函数参数 -- 动态传参

    我们需要给一个函数传参,而参数又是不确定的,或者我给一个函数传很多参数,我们可以考虑使用动态参数:

    动态参数可以分为两种:

    用*args接收,返回元组形式

    用**kwargs接收,接收关键字参数(比如:food='盖浇饭')返回字典

    def func_1(*args,**kwargs):
        print(args,type(args)) #(1, 2, 3, 4) <class 'tuple'>
        print(kwargs,type(kwargs)) # {'food': '盖浇饭', 'drink': '脉动'} <class 'dict'>
    func_1(1,2,3,4,food='盖浇饭',drink='脉动')

    顺序: 位置参数, 动态参数*, 默认值参数

     
     
     
  • 相关阅读:
    在Ubuntu上设置gmail邮件通知
    A Course on Borel Sets theorem 1.3.1
    A Course on Borel Sets theorem 1.3.1
    平面上的点和直线上的点一样多
    Cantor定理(2)
    经典多普勒效应,相对论多普勒效应,以及质能方程
    平面上的点和直线上的点一样多
    在Ubuntu上设置gmail邮件通知
    Windows漏洞:MS08067远程代码执行漏洞复现及深度防御
    9个问题,带你掌握流程控制语句中的java原理
  • 原文地址:https://www.cnblogs.com/liangying666/p/9166949.html
Copyright © 2020-2023  润新知