前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数基础,函数返回值,函数调用的3中方式,形参与实参

函数基础,函数返回值,函数调用的3中方式,形参与实参

作者头像
小小咸鱼YwY
发布2019-07-24 16:07:13
2K0
发布2019-07-24 16:07:13
举报
文章被收录于专栏:python-爬虫python-爬虫

5.29自我总结

一.函数基础

1.什么是函数

代码语言:javascript
复制
在程序中,函数是具有种功能功能的工具

2.函数的两个阶段

1.函数的定义

a)有参函数定义

在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。

如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。

代码语言:javascript
复制
def 函数名(param1、param2……x=9): #其中paraml1与param2为函数的需要填入的值,x为默认参数
    '''对于函数的描述'''
    函数功能的描述信息
    :param1:描述
    :param2:描述
    :return:返回值   #return除了返回值的作用还结束进程的作用,不会再接着往下运行
    
#定义的时候def内的代码块他只会检测代码的语法,语法错误会报错,不会运行里面的代码.

b)无参函数

在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。

代码语言:javascript
复制
def func():
    print('hello nick')
    
func()  # hello nick

c)空函数

当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数,然后先实现其他的功能。

代码语言:javascript
复制
def func():
    pass
2.函数简单调用

a)有参函数的调用

代码语言:javascript
复制
def函数名(param1、param2……)) #默认参数可以不用填写,如果填写将覆盖原来参数值

b)无参函数的调用

代码语言:javascript
复制
func()

c)空函数的调用

代码语言:javascript
复制
func()

二.函数的返回值

为函数返回给的值:

代码语言:javascript
复制
def Than_the_size(num_1,num_2):
    if num_1>num_2:
        print(num_1)
    else:
        print(num_2)
print(Than_the_size(3,2))
#这时我们终端看到的是None应为我们没有返回值,print打印只是给终端看的并没有返回值给函数,所有我们看不到值.
#我们把print换成return
def Than_the_size(num_1,num_2):
    if num_1>num_2:
        return num_1  #return可以返回任何数据类型,但是只能返回一个
    else:
        return num_2
print(Than_the_size(3,2))
#这时候我们看到的返回的值是3,return是把值返还给函数并且停止函数下面的运行.

三.调用函数的三种方式

代码语言:javascript
复制
def max_self(x,y):   
    if x>y:
        return x
    else:
        return y
    
# 1.
max_self(1,2)
# 2.
res = max_self(1,2)*12
# 3.
max_self(max_self(20000,30000),40000)

四.形参和实参

1.形参

在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名。

代码语言:javascript
复制
def func(x, y,z=10,d=9): #其中X,y为位置形参,z为默认形参,x,y,z都为形参
    print(x)
    print(y)

2.实参

在函数调用阶段括号内传入的参数,称之为实际参数,简称实参,本质就是变量的值。

代码语言:javascript
复制
func(1,2,z= 30)  #其中1,2为实参,z为关键字实参
func(1,2,30) #其中 1,2,30为实参
注意事项
  1. 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
  2. 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
代码语言:javascript
复制
func(1,2, y=2)
func(y=2, 1,2)  # SyntaxError: positional argument follows keyword argument
func(1,2,x, x=1)  # NameError: name 'x' is not defined

3.快速导入一串实参的方法

代码语言:javascript
复制
def func(x, y,z=10,d=10):
    print(x)
    print(y)
    print(z)
    print(d)
words_list = [1,2,3,4,5,6,7]
words_tuple = [1,2,3,4,5,6,7]
func(*words_list)
func(*words_tuple)
#TypeError: func() takes from 2 to 4 positional arguments but 7 were given
#导入的值的数量不能超过他形参的数量
def func(x, y,z=10,d=10):
    print(x)
    print(y)
    print(z)
    print(d)
words_list = [1,2,3,4]
words_tuple = [1,2]
word_str = '11'
words_dict = {'z':2,'d':10}
func(*words_list)   #将里面的元素安装从左往右全部以位置实参填入
func(*words_tuple)
func(*word_str)
func(*words_dict) #是以key填入
#成功打印,顺序是从左往右一一填入,位置实参可以以列表,元祖,字典,字符串形式填入
def func(x, y,z=10,d=10):
    print(x)
    print(y)
    print(z)
    print(d)
words_list = [1,2,3,4]
words_tuple = [1,2]
words_dict = {'z':2,'d':10}
func(*words_list,**words_dict)   
#func(*words_tuple)
#TypeError: func() got multiple values for argument 'z',会报错
def func(x, y,z=10,d=10):
    print(x)
    print(y)
    print(z)
    print(d)
words_list = [1,2,3,4]
words_tuple = [1,2]
words_dict = {'z':2,'d':10}
#func(*words_list,**words_dict)   
func(*words_tuple,**words_dict)
#正常打印,且字典里的键值对对应默认形参填入,写法是**+字典
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.29自我总结
  • 一.函数基础
    • 1.什么是函数
      • 2.函数的两个阶段
        • 1.函数的定义
        • 2.函数简单调用
    • 二.函数的返回值
    • 三.调用函数的三种方式
    • 四.形参和实参
      • 1.形参
        • 2.实参
          • 注意事项
        • 3.快速导入一串实参的方法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档