当前位置: 首页 > 科技观察

Python函数编程基础知识介绍

时间:2023-03-13 19:42:23 科技观察

函数基础掌握自定义函数的基本语法规范和调用方法,掌握函数各种参数的使用和调用规则。1.Python函数函数(Function)是一个有组织的、可重用的代码段,用于实现单个或相关的功能。函数可以提高应用程序的模块化和代码的重用率。我们已经接触过Python提供的许多内置函数,例如print()。但您也可以创建自己的函数,称为用户定义函数。2.自定义一个函数基本规则你可以用你想要的函数来定义一个函数,以下是简单的规则:函数代码块以def关键字开头,后面是函数标识符名称和括号()。任何传入的参数和参数都必须括在括号中。参数可以在括号之间定义。函数的第一行语句可以选择使用文档字符串-用于存储函数描述。函数内容以冒号开头并缩进。returnm[expression]终止函数,可选地向调用者返回一个值。不带表达式的return等同于返回None。3.自定义一个函数语法定义函数的语法:def函数标识名(参数列表):"function_documentstring,explainthefunction"functionbodyreturn[expression]默认情况下,参数值和参数名是顺序匹配的在函数声明中定义。4.函数调用函数的定义只是给函数-一个名字,指定函数中包含的参数,以及代码块结构。完成此函数的基本结构后,您可以通过另一个函数调用或直接从Python提示符执行它。下例调用printme()函数,调用后输出结果为:4.return关键字return语句[expression]退出函数,有选择地返回一个表达式给调用者。没有参数值的return语句返回None。前面的示例没有演示如何返回值。下面的例子告诉你怎么做:5、在python中,参数类型属于对象,变量没有类型:a=[1,2,3]a="Runoob"在上面的代码中,[1,2,3]是List类型,“Runoob”是String类型,变量a没有类型,只是一个对象的引用(-a指针),可以是List类型对象,也可以指向a字符串类型对象。Python函数不可变类型的参数传递:程序编程中的值传递,如integer、string、tuple。比如fun(a),只传递a的值,不影响a对象本身。比如在fun(a)里面修改a的值只是修改了另一个复制的对象,不会影响到a本身。我们通常称之为按值传递。变量类型:类似于编程中的引用传递(地址传递),比如列表、字典。比如fun(la)就是把la传过去,fun外面修改的la也会受到影响。在python中,一切都是对象。严格来说,我们不能说是按值传递还是按引用传递。我们应该说传递不可变对象和传递可变对象。6.参数下面是调用函数时可以使用的形参类型:强制参数。关键字参数。默认参数。不定长参数。强制参数强制参数必须以正确的顺序传递给函数。通话时的号码必须与申报时的号码相同。例:ch06-demo01-args-necessary.py调用greeting()函数,必须传入一个参数,否则会出现语法错误:关键字参数与函数调用密切相关,函数调用使用关键字参数来判断传入的参数值。使用关键字arguments允许参数的顺序与调用函数时的声明不一致,因为Python解释器可以将参数值与参数名称进行匹配。例子:ch06-demo02-keyword.py以下例子使用函数printinfo()调用时的参数名:defaultparameter调用函数时,如果没有传入默认参数的值,则认为是默认值。示例:ch06-demo03-args-default.py打印默认年龄,如果未传入年龄:注意:默认值必须放在最后一个参数中。可变长度参数*args可能需要一个函数来处理比最初声明的更多的参数。这些参数称为不定长参数。适用于参数个数不确定或参数个数会根据调用情况动态变化的情况。基本语法如下:deffunctionname(formalargs,*args):"function_documentstring"functionbodyretum[expression]带有星号(*)的变量名将存储所有未命名的变量参数。也可以选择不传递更多的参数,变长参数的类型是元组。补充:**kw**两个模型代表一个变长字典类型参数。因此,参数必须出现在k-v值结构中。deffunctionname(formal_args,**kw):"function_documentstring"functionbodyretum[表达式加星号(**)变量名将存储所有未命名的变量参数。可以选择不传递更多参数,变长参数类型为字典。总结:*argv和**kw的区别这两个参数必须是函数定义中参数列表中的最后一个参数。*argv表示参数位置可以放任意数量的数据,最终会在函数体中转换成元组数据类型进行处理。**kw表示参数position可以放k=v格式的数据,最终会在函数体中转换成字典类型的数据进行处理。