无锡本地模板网站建设,软件公司网站模板图片,宁波的网络公司比较有名的,天津市津南区教育网站建设招标函数
函数是组织好的#xff0c;可重复使用的#xff0c;用来实现单一#xff0c;或相关联功能的代码段。函数能提高应用的模块性#xff0c;和代码的重复利用率。你已经知道Python提供了许多内建函数#xff0c;比如print()。但你也可以自己创建函数#xff0c;这被叫做…函数
函数是组织好的可重复使用的用来实现单一或相关联功能的代码段。函数能提高应用的模块性和代码的重复利用率。你已经知道Python提供了许多内建函数比如print()。但你也可以自己创建函数这被叫做用户自定义函数。
定义一个函数
函数代码块以 def 关键词开头后接函数标识符名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号 : 起始并且缩进。return [表达式] 结束函数选择性地返回一个值给调用方不带表达式的 return 相当于返回 None。 语法
Python 定义函数使用 def 关键字一般格式如下
def 函数名参数列表:函数体函数调用
定义一个函数给了函数一个名称指定了函数里包含的参数和代码块结构。
# 定义函数
def printme( str ):# 打印任何传入的字符串print (str)return# 调用函数
printme(我要调用用户自定义函数!)
printme(再次调用同一函数)
传入的参数的类型检查
def my_ad(x):if not isinstance(x,(int,float)):raise TypeError#抛出异常print(kk)
参数
以下是调用函数时可使用的正式参数类型
必需参数关键字参数默认参数不定长参数
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用 printme() 函数你必须传入一个参数不然会出现语法错误
def printme( str ):打印任何传入的字符串print (str)return# 调用 printme 函数不加参数会报错
printme()
关键字参数
关键字参数和函数调用关系紧密函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致因为 Python 解释器能够用参数名匹配参数值。关键字参数必须放在普通参数的后面
#可写函数说明
def printme( str ):打印任何传入的字符串print (str)return#调用printme函数
printme( str 菜鸟教程)
命名关键字参数限定后边的参数必须是以关键字形式传参 def asd(a,b,*,c,d):#*后面的c,d必须以关键字的形式传参print(a)print(b)asd(1,2,c 3,b 4)
默认参数 调用函数时如果没有传递参数则会使用默认参数。以下实例中如果没有传入 age 参数则使用默认值
默认值只会执行一次
官方推荐:默认参数尽量使用不可变类型
#可写函数说明
def printinfo( name, age 35 ):打印任何传入的字符串print (名字: , name)print (年龄: , age)return#调用printinfo函数
printinfo( age50, namerunoob )
print (------------------------)
printinfo( namerunoob )结果
名字: runoob
年龄: 50
------------------------
名字: runoob
年龄: 35 return 语句
return [表达式] 语句用于退出函数选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。之前的例子都没有示范如何返回数值以下实例演示了 return 语句的用法
# 可写函数说明
def sum( arg1, arg2 ):# 返回2个参数的和.total arg1 arg2print (函数内 : , total)return total# 调用sum函数
total sum( 10, 20 )
print (函数外 : , total)结果
函数内 : 30
函数外 : 30可变参数
*函数常见的 *args args变量指向一个tuple(元组)对象
自动接收未匹配的位置参数到一个元组对象中
def asd(a,*b):print(a)print(b)asd(123)
运行结果
123
()asd(11,12,13,14,15)
运行结果
11
(12,13,14,15)
参数的解包开包
参数类型是字符串、列表、元组、集合、字典的时候可以解包
传递实参时可以根据序列类型的参数前面添加一个*
自动将序列中的元素以此作为参数传递
实例
def asd(a,b,c):print(a)print(b)print(b)asd(*123)1
2
3asd(*[4,5,6])4
5
6def asd(a,b,c):print(a)print(b)print(b)
d {a : asb : 18c : 吃饭
}
asd(*d)a
b
casd(**d)a: as
b: 18
c: 吃饭
参数的解包与可变参数一起作用
def asd(a,*arge):print(a)print(args)asd(100,*(1,2,3))
函数递归 函数作为一种代码封装可以被其他程序调用当然也可以被函数内部代码调用。这种函数定义中调用函数自身的方式称为递归。
实例:求阶乘
#计算阶乘根据用户输入的整数n计算并输出n的阶乘值
def fact(n):#计算阶乘if n 1:return 1else:return n * fact(n-1)num eval(input(请输入一个正整数: ))
print(fact(num))
递归的使用方法
找到递归关系即把一个复杂的问题转化为与它形式相似、但规模较小的问题找到递归出口即问题转化时当规模足够小可以直接求解