pyhon 初始函数

 

内容介绍                           

函数定义和调用

返回值

参数

 

函数定义和调用                           

函数分为:内置函数和自定义函数,内置函数是python自带的函数,不需要定义,直接调用就行。主要介绍自定义函数。

函数的定义:def 函数名():    目的:定义之后可以在任何地方调用它。代码如下:

x = 3
y = 4
def my_sum():    #自定义一个求和函数
    print(x+y)   #函数体内部打印  but,如果将调用函数赋给变量是否存在值呢?

my_sum()   # 函数调用

结果: 7

返回值                                          

上述函数虽然在cmd或者pycharm中都能打印出结果,但是 如果将调用函数代码改为 a = my_sum() 呢?  我想要这个结果去做其他的事情?看运行结果:

图 1-1

很显然,函数并没有给我返回值,怎么办呢?

我们创建函数显然是要最终的返回值,在函数里加上 return 返回值 就行了。

return需要注意的一点:函数一旦执行了return,那么后面的代码就不执行,直接跳出函数。比如下面的代码:

x = 3
y = 4
def my_sum():    #自定义一个求和函数
    print('#######')
    return x+y          #一旦执行了return ,后面的代码就不执行
    print('......')     #

a = my_sum()    #函数调用
print(a)

结果:   由此可以对比出print('......')并没有执行。

return 返回值有3种情况

没有返回值

  1. 不写 return  就像图1-1写的代码一样
  2. 只写return  这个就是说只写return 后面不写返回值   导致的结果跟没写return是一样的

返回一个值

  1. 可以放返回任何类型的值(str、int、list、dict、tuple等)
  2. 只有有返回值就可以接收到
  3. 程序中多个return,只执行第一个。

返回多个值

  1. return 1,2   return后面可以跟多个返回值
  2. 多个返回值用一个变量接收:得到的是一个元组
  3. 多个返回值用多个变量接收
def my_msg():
    return 1,2,3

a,b,c = my_msg()  #多个变量接收多个返回值
print(a,b,c)  #1 2 3
x = my_msg()     #一个变量接收多个返回值
print(x,type(x))  #(1, 2, 3) <class 'tuple'>
多个返回值

函数的参数                                     

上面介绍的函数定义中,都是不含参数的。函数参数分为:形参和实参。先说一下参数中涉及到概念。

形参:定义函数时括号里面的变量

实参:调用函数时括号里面传递的变量

定义:def 函数名(形参1,形参2)

位置参数:直接定义的参数

关键字参数:关键字 = ‘值’

动态参数:*args 和 **kwargs

看文字还不了解,直接看代码:

def s_info(name,age,sex): #定义位置参数
    msg = '''
******info*******
Name:{}
Age:{}
Sex:{}
*****************
'''.format(name,age,sex)
    return msg

info = s_info('admin',18,'')   #位置参数:admin传递给name  18传递给age   男 传递给sex   按照位置传递
print(info)
def s_info(name,age,sex = ''): #定义位置参数和关键字参数
    msg = '''
******info*******
Name:{}
Age:{}
Sex:{}
*****************
'''.format(name,age,sex)
    return msg

info = s_info('admin',18)   #关键字参数: 函数定义了关键字sex=女,调用的时候就不需要再输入除非关键字参数默认值改变
print(info)

#注意,上面这个代码中,位置参数和关键字参数可以混合使用,但是,顺序不能弄错,先是位置参数,其次是关键参数
def s_info(name,*args,job='IT',**kwargs):    #*args 接收的是位置参数的值:18 和 男    组成元组
                                             # **kwargs 接收的是关键字参数的值:a = 1、b = 2、c = 3   组成字典
    msg = '''                                
******info*******
Name:{}
Age and Sex:{}
Job:{}
其他:{}
*****************
'''.format(name,args,job,kwargs)
    return msg

info = s_info('admin',18,'',a=1,b=2,c=3)
print(info)

运行结果:

由此可知,函数定义参数是按照:位置参数 —— *args —— 关键字参数 —— **kwargs

不信的话,可以调整位置试试

错误演示:

由此可见,关键字参数被年龄18给重新赋值了,导致结果变了。

思维导图总结:

posted @ 2019-05-19 09:52  自在呼吸  阅读(319)  评论(0)    收藏  举报