函数
1,函数是组织好的,可重复使用的,用来实现独立功能的代码段。
2,函数能提高应用的模块性,可以提高程序代码的重用率。(主要是因为懒,并且节省空间)
3,把代码封装到函数里,当需要使用时在调用出来。(类似于工具箱)
函数格式:
1,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
2,任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
3,函数的第一行语句可以选择使用文档字符串用于存放函数说明。
4,函数内容以冒号起始,并且缩进。
def 函数名():#尽量体现函数功能
"函数_文档字符串"
函数代码块
return 表达值
注意:
1,函数名称必须遵循字符串规则,由数字、字母、下划线组成,且不能以数字开头,不能使用关键字
2,函数先定义后调用
3,函数不调用不执行
4,函数可以多次调用
def demo1(hello):
print(hello)
return
demo1("输出自定义函数")
demo1("再次调用")
输出结果:
输出自定义函数
再次调用
参数:
1,位置参数:
实参传递的顺序按照形参定义的顺序进行传递的传参方式。调用时的数量必须和声明时的一样。
实例:
def sun1(num1,num2):#定义两个参数
he=num1+num2 #两数之和
print(he)
sun1(20,32) #调用函数 num1=20 num2=32
结果:52
2,关键字参数:
以形参等于实参的形式忽略形参定义的顺序行经传参的方式
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
***参数位置与关键字参数一起使用时,位置参数必须在关键字参数前,并且一个参数只能赋值一次
实例:
def sun(num1,num2):
he=num1+num2
print(he)
sun(num2=20,num1=32)
def sun(num1,num2):
he=num1+num2
print(he)
sun(20,num2=32)
3,默认参数:
调用函数时,默认参数的值如没有传入,则被认为是默认值,当某个值变化小时,我们就可以使用默认参数
def info(num1, num2, num3=40):
he = num1 + num2 + num3
print(he)
info(20, 30)
#结果:90
def info(num1, num2, num3=40):
he = num1 + num2 + num3
print(he)
info(20, 30,50)
结果:100
4,可变参数:
如果函数中的参数过多,定义很麻烦,因为Python提供了可变参数类型。能处理更多参数,会将传入参数变成元组或者字典
(1)、元祖参数(*args)
通过给形参前添加 * 使参数变成一个元组,所有传递的参数变成元组的元素
**args参数名称可以任意命名,但一般为args。具有打撒序列功能。
实例:
#计算多个数和
def he(*args):
he1 =0
for i in args:
he1+=i
print(he1)
he(2,3,5,6,7,9)
#结果:32
(2)、字典餐胡 (kwargs)
通过使用给形参前添加 时参数变成一个字典,所有传参的参数变成字典的键值对
**kwargs结果类型是字典,传递值是以key=value方式传入
注意:**kwargs和args一起使用时*kwargs必须放在*args后面
def xingxi(**kwargs):
print(kwargs)
print(kwargs['name'],kwargs['sex'])
xingxi(name='白',sex='男')
#输出:白 男
函数参数总结
定义函数时参数的顺序:位置参数,元组参数,默认参数,字典参数
return
返回值表示程序中函数完成一件事情后,最后给调用者结果。
Python高级语言,不使用return函数代码块会先被自带的垃圾回收装置回收。
1,如果无return默认返回None
2,只写return默认返回None,也代表函数结束
3,return可以返回任意类型值
4,return可以返回多个值,元组形式
变量作用域
一个程序的所有变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。
变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。
主要分为全局变量和局部变量,局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内使用。
a = 10 #a全局变量
def sun(sum1, sum2):
he = sum1 + sum2 + a #he局部变量
print(he)
sun(10, 20)
#结果40