''''''
'''
函数:
1.定义:指通过专门的代码组织,用来实现特定的功能的代码段,具有相对独立性,可供其他代码重复调用
2.语法:
def 函数名([参数]):
函数体
[return 返回值]
3.函数名命名规则:
(1)符合基本的标识符命名原则;
(2)不能与现有内置函数名发生冲突
(3)名称应该准确的表达函数的功能
'''
#1.不带参数的函数————求因数
def factor_no_para():
nums=10
for i in range(1,11):
if nums%i==0:
print('%d'%(i))
factor_no_para()
#2.带参数函数格式————求因数2.0
def factor_no_para2(nums): #在def(参数)这里面的参数叫形式参数
for i in range(1,nums+1):
if nums%i==0:
print(i)
factor_no_para2(15) #15为给自定义函数传的值(参),叫实际参数
'''
4.调用函数模块
通过import语句导入整个函数模块——导入后,通过模块名.函数名的连接方式调用函数
还可以只调用指定函数:from 模块名 import 函数名1,函数名2...
还可以导入所有函数:from 模块名 import *
别名:若模块名,函数名过长,可以通过as语句定义别名的方式解决:模块名【函数名】 as 别名
5.参数
notes:1.不定长参数:(1)传递任意数量的参数值:*
(2)传递任意数量的键值对:**
2.参数可以传递元组,列表和字典
'''
def exam(name,score):
print('name:'+name+',score:'+str(score))
exam('liu',100)
exam(name='wang',score=100)
exam(score=90,name='ma')
exam('li',score=50)
def fruit(name,**attribute):
print('name:'+name)
return attribute
print(fruit('watermelon',color='green',shape='圆形',taste='sweet')) #传递的是键值对
'''
结果为:name:watermelon
{'color': 'green', 'shape': '圆形', 'taste': 'sweet'}
'''
'''
6.作用域
(1)全局变量:从赋值开始,后续代码都可以访问该变量
(2)局部变量:只能在被定义的函数或者类内部被访问的变量
7.关键字——global
全局变量在函数中不能对其进行修改,如需修改,要先用global关键字声明
'''
i=10
def sum1():
global i #声明i为全局变量
i=i+5
print(i)
sum1()
print(i)
'''
8.闭包
是介于全局变量和局部变量之间的一种特殊变量。
'''
j=5
def sum2():
k=2 #闭包变量k
def sum3():
i=k+j
return i
return sum3()
print(sum2())
'''
9.nonlocal关键字
外部函数定义一个变量,内部函数去调用,这个变量就叫闭包变量,如果内部函数想修改这个闭包变量,需要用nonlocal关键字声明。
10.匿名函数
lambda
11.递归函数
'''
a=lambda x,y:x*y
m=a(2,3)
print(m)