函数的意义
为了方便代码重复利用
使用函数的好处:
1、简化代码
2、提高代码的复用性
3、代码可扩展
定义函数的方法
定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
eg:
def my_abs(x): #x是形参,形式参数
if x>=0:
return x
else:
return -x
print(my_abs(1)) #实参
函数之返回多个值
eg:
import math def move(x, y, step, angle): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny
函数全局变量和局部变量money = 0 >>全局变量
def dsk():
global money >>声明全局变量
money += 500 >>修改全局变量
def yjc()
money = 500 >>局部变量
※:需要global声明:int string tuple
不需要global声明:dict list set
必传参数、默认值参数、参数组、关键字参数
1.def say_hello(word)#word为必传参数
2.def say_hello(word='hello')#默认值参数
3.def send_mail(*names)#参数组(把参数放到一个元组里)
for name in names:
print('给%s发邮件'%name)
send_mail()
send_mail('abc')
4.def zzz(name,age,sex,addr)
szz(name='xiaohei',addr='北京')
或者
szz(xiaohei,18,addr='北京')
#调用函数的时候,可以都用位置参数,位置是一一对应的,必须按照位置来传参
#也可以全部用关键字参数,指定关键字,不需要按照顺序来
#也可以一起用,但是要先写位置参数,后写关键字参数,关键字参数后面不能再有位置参数
5.def (**info):#把参数放到一个字典里
print(info)
xiaohei()
xiaohei(1,2,3)
xiaohei(name='xiaohei',addr='北京')
深拷贝、浅拷贝
li = [1,2,3]
l2 = li
#浅拷贝(互相影响,不会开辟新的内存地址)d1 = copy.deepcopy(d)
li = [1,2,3]
l2 = li[:]
#深拷贝(互补影响,开辟新的内存地址)
copy.copy()#是浅拷贝
内置函数
round(1.991,2)#保留几位小数
divmod(10,3)>>(3,1) #除法
globals()>>取当前文件里面的变量
locals()>>打印局部变量
chr()>>ascii码对应的字符
otc()>>字符对应的ASCII码
dir()>>查看变量可以调用哪些方法
enumerate:枚举
for id,i in enumerate(l,1)#记住编号
zip