广州番禺Python, Java小班周末班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
14.2.1 位置参数与关键字参数
位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。在调用函数时,会自动将实参与形参的位置对应起来。如果无法建立参数之间的一一对应的关系,那么Python解释器会抛出类型错误的异常信息。
当实参数目小于或大于形参的数目时,不能建立参数之间的一一对应的关系。
关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。关键字参数的调用语法:
function(key=value)这里的key即形参名,value即为实参值。以关键字参数的形式进行调用时,Python解释器会自动将实参值与形参对应起来,无需识记形参的位置。
代码实例:
# __desc__ = 分别以位置参数和关键字参数的形式来调用函数 # 定义一个简单的函数,将参数进行返回 def just_return(x, y, z): return x,y,z # 以位置参数的形式来进行调用 x,y,z=just_return(3,2,1) # 实参3对应的形参是x,实参2对应的形参是y,实参1对应的形参是z # 以关键字参数的形式来进行调用 x,y,z=just_return(z=3, y=2, x=1) # Python自动将实参与形参对应起来,例如实参3对应的形参是z
使用关键字参数的方式进行调用时,无需识记函数定义时的参数顺序。
14.2.2 函数的参数默认值
在定义函数时,可以为参数设置默认值,语法形式为:
def function_name(parameter=default_value): passdefault_value表示参数的默认值。为参数设置默认值以后,如果不传递对应的实参,那么会使用默认值进行代替。
代码实例:
# __desc__ = 为参数设置默认值 # 定义一个简单的函数,将参数进行返回 def just_return(x, y=2, z=3): """ 参数y的默认值为2, 参数z的默认值为3 """ return x,y,z # 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值 x,y,z=just_return(1) # 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值 x,y,z=just_return(1,3)定义参数的默认值时,要按从右到左的参数顺序来设置默认值,否则Python会抛出语法错误的异常信息:
# __desc__ = 必须按从右到左的参数顺序来设置默认值 # 定义一个简单的函数,将参数进行返回 def just_return(x=1, y,z): """ 参数x的默认值为1 """ return x,y,z """ 上面的函数定义是非法的,假设我们按位置参数的方式来进行调用: x,y,z=just_return(3,2,1) 在按位置参数的方式进行调用时,实参与形参是以从左到右的调用顺序进行对应的。 所以只为形参x设置默认值,毫无意义。 初学者可能会以这样的方式进行调用: x,y,z=just_return(3,2) 此时,实参3对应的是形参x,实参2对应的是形参y,形参z没有对应的实参, Python会抛出语法错误的异常信息。 """
14.2.3 函数的引用类型参数
Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。在函数中对该类型参数进行修改时,修改的是同一块内存空间的值。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。
Python中的复合数据类型:字符串,列表,元组,字典,集合。
代码实例:
# __desc__ = 函数调用时,传递复合数据类型 # 定义一个简单的函数,在函数体中对参数进行修改 def add_number(numbers, number): """ numbers是一个列表类型 """ numbers.append(number) # 定义列表变量 numbers=[1,2,3] # 调用函数add_number add_number(numbers, 4) # numbers的输出为[1,2,3,4]由于修改的是同一块内存空间的值,所以即使函数调用结束以后,也会影响到函数体之外的变量。在上文的代码实例中,调用函数前列表numbers的输出为:
[1,2,3]
在函数体中,将实参4添加至列表numbers中,在函数体中的输出为:
[1,2,3,4]
由于修改的是同一块内存空间的值,所以函数调用结束后,列表numbers的输出同样为:
[1,2,3,4]
当传递的是简单数据类型时,只是将值进行拷贝:
# __desc__ = 函数调用时,传递简单数据类型 # 定义一个简单的函数,在函数体中对参数进行修改 def just_change(x): x = 0 print(x) # 在函数体中对x进行修改,x的输出为0 # 定义整型类型变量x,初值为1 x = 1 # 调用函数,传递变量x just_change(x) # 函数调用结束以后,输出变量x的值 print(x) # x的输出仍然为1
Python中的简单数据类型:整型,浮点类型,布尔类型
14.2.4 函数的可变参数
在定义函数时,如果不能确定函数的参数个数,可以使用可变参数。可变参数涉及的知识点比较多,对于函数的可变参数,将在14.3节中进行详细讲解。
14.2.5 知识要点
(1) 位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。(2) 关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。(3) 定义函数时,可以为参数设置默认值,默认值必须以从右到左的参数顺序来设置默认值。在调用函数时,如果不传递对应的实参,那么会使用默认值进行代替。(4) Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。
14.2.6 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料:
已有1位薯条发表了看法:
访客 评论于 2020-12-04 19:34:08 回复
最后一个实例,x = 1的对齐出错了