python基础——函数一

目录

 

 

一.函数的定义和调用:

二.函数参数的类型:

 三.函数的返回值及返回多个值:

四.位置参数和关键字参数:

五.默认参数和可变参数:

 六.参数顺序和函数嵌套:


 

一.函数的定义和调用:

1.函数的格式:    

                        def   函数名称()

                                 ...函数体...

注意:

 函数的名称是要遵循标识符命名规则,使用下划线命名法。

函数体是靠强制缩进来表示的。

:()都是用英文来表示的。

 函数只有在调用时才会执行,只创建不调用是不会执行的。

 2.调用函数的格式:
         
         函数名()

注意:

必须先创建函数,后调用函数。

一般情况下调用函数不能和函数体放在一起。

函数可以调用多次。

def say_hello():
    
    print('hello')

say_hello()
say_hello()
say_hello()

输出结果:hello
                    hello
                    hello

3.函数的注释:

在函数体的一行适应多行注释对函数的功能进行解释说明 

调用函数的时候,通过快捷键ctrl+Q,可以查看函数的功能。

注释用三引号括起来:

4. 带参数的函数:

-在小括号中写的变量名就是函数的参数,多个参数之间使用逗号","隔开。

-函数定义几个参数,调用函数是就必须传递对应个数的参数。

-定义函数的参数叫做形参--->形式参数

-调用函数时候的参数叫做实参-----> 实际参数

二.函数参数的类型:

可变数据类型:   list,dic
不可变数据类型: int,str,float

1.传递不可变数据类型不会影响参数本身

a =100
print('a的id是:',id(a))   # 查看
def func(b):
     print(b)
     print('b的id是:',id(b))

func(a)

输出结果:a的id是: 493516912
                    100
                    b的id是: 493516912

由此可以看是传递不可变数据类型,函数本身是不会改变的。

2.传递可变参数类型:(会影响参数本身)

输出结果:

如果修改参数:形参被修改,实参也会跟着改。

输出结果:

 三.函数的返回值及返回多个值:

1.返回值:    return是谁调用的就把返回值给谁

格式: 函数名(参数1,参数2,...):
            ...函数体...

             return  值
1. 在函数体的最后使用关键字return 要返回的值
2. 如果一个函数不写返回值,默认返回None
3.return有两个作用:
    -可以返回值
    -可以结束这个函数,一般return  后面不会再写其他代码了。
1.返回值

def sum_num(aa,bb):
    num3 = aa+bb

    return num3         # 返回num3

ret = sum_num(1,2)  # 定义一个变量ret来接受函数返回的值,拿到返回值后可以做后续的逻辑操作。
print(ret)

输出结果:3

2.返回None

def sum_num(aa,bb):
    num3 = aa+bb

    return        # 没有写返回值

ret = sum_num(1,2)  
print(ret)

输出结果:None

3.return两个作用

def func(c):
    print('func...')
    a = 10
    b = c
    if b < a:  # 在函数体内进行条件判断
        return
    print('哈哈哈')
    print('呵呵呵')


func(1)


输出结果:func...

--------------------------------------------------------------------
def func(c):
    print('func...')
    a = 10
    b = c
    if b < a:  # 在函数体内进行条件判断
        return
    print('哈哈哈')
    print('呵呵呵')


func(11)


输出结果:func
         哈哈哈
         呵呵呵

2.返回多个值:

语法:
def 函数名():
    ...函数体...
    Return 值1,值2,...

返回多值其实就是返回一个tuple,在语法上返回一个tuple可以省略括号数
def func():
    a = 10
    b = 20
    return a,b

ret = func()
print(ret)

 输出结果:(10,20)

四.位置参数和关键字参数:

1.位置参数:

实参和形参一一对应,按照对应位置传递参数,叫位置参数。

def sum_num(num1,num2):
    sum = num1+num2
    print(sum)

sum_num(12,13)    # 12传递给num1,  13传递给num2,一一对应

输出结果:25

2.关键字参数:

按关键字传递参数,位置变化不会影响且关键字必须是在形参中声名过才能使用。

输出结果: 25’

注意:如果位置参数和关键字参数混用,必须位置参数在前,关键字参数在后。
def sum_num(num1,num2):
    sum = num1+num2
    print(sum)

sum_num(12,num2=13)  # 12 是按照位置参数传递给num1, num2=13按照关键字参数传递。

输出结果:25

五.默认参数和可变参数:

1.默认参数:

在定义函数的形参的时候,可以给形参赋一个初始值(默认值),这种参数就叫做默认参数,当调用函数的时候,
如果不给默认参数赋值,函数就会使用使用默认值,如果给默认参数赋值,函数就会使用重新赋的值。

注意:默认参数一定要写在形参后面。

def user_info(name,age,gender='男'):
    print('姓名:{},年龄:{},性别:{}'.format(name,age,gender))

user_info('张三',20)   # 使用默认值  注意一一对应

user_info('王五',30,'女') # 使用赋的值  注意一一对应

输出结果:姓名:zs,年龄:20,性别:男
                    姓名:ww,年龄:30,性别:女

2.可变参数:

如果函数中的参数过多,我们定义起来非常的麻烦,调用起来也非常的麻烦,因此python给我们提供了可变参数类型。能处理比当初声明时更多的参数,会将传入的参数变成元组(*args)或者字典(**kwargs)

元组参数: *args

通过给形参前面添加*使参数变成一个元组,所有传递的参数变成元组的元素

注意: args参数名称可以任意命名,但是一般我们叫他 args。

f func(*args):
    print(args)
    print(args[0],args[1])   # 获取元组内前两个元素。

func(1,2,3,4)         # 可以传递多个实参

输出结果:(1,2,3,4)

                      1,2

* 具有打散功能:

tup = (1,2,3,4)
print(*tup)

lst = ['a','b','c','d']
print(*lst)

s = 'hello'
print(*s)

输出结果:1 2 3 4
                    a b c d
                    h e l l o

 字典参数 **kwargs:

通过给形参前面添加**使参数变成一个字典,所有传递的参数变成字典的键值对,这里传参要求键等于值的形式。

**kwargs结果类型是字典,传递值是以key=value方式传入

def func(**kwargs):
    print(kwargs)

func(name = 'zs',age = 20, gender ='男' )    #{'name': 'zs', 'age': 20, 'gender': '男'}

输出结果:{'name': 'zs', 'age': 20, 'gender': '男'}

打散字典:

def func(name,age):
    print(name,age)

dic={'name':'zs','age':20}
func(**dic)

输出结果:zs  20

注意:**kwargs必须放在*args后面,否则会报错。

 六.参数顺序和函数嵌套:

1.参数顺序:

创建函数声名参数时的顺序:
位置参数,*args,默认参数,**kwargs

输出结果:

 2.函数嵌套:

def outter():
    print('aaa')
    def inner():
        print('bbb')

    inner()
outter()

 输出结果:aaa

                     bbb

猜你喜欢

转载自blog.csdn.net/weixin_43567965/article/details/85711892
今日推荐