函数
函数定义
函数 也就是方法、功能,说白了,函数就是把一堆代码组合到一起,变成一个整体。
函数的作用:提高代码的复用性
注:函数不调用不会被执行
练习:下面代码运行结果是什么?
def test(): global a a = 5 def test1(): c = a+5 return c res = test1() print(res)
解析:很多人觉得是10,因为test()函数中,设置a为全局变量,且a的值为5,所以test1()函数中引用全局变量a=5,所以c=10,似乎很有道理,然而。。。。
运行报错,a没有定义,原因是test()木有被调用,木有被调用,木有被调用,,啊哈哈哈,知道函数调用才被执行的重要性了吧
全局变量、局部变量
函数内部的变量是局部变量,只对本函数使用,函数外部的变量是全局变量,对所有函数使用------可以通过global,将局部变量声明成全局变量
c=10#全局变量 def test(): global a#通过global,将局部变量a声明成全局变量 a = 5 b=2#局部变量,只在 test()函数中有效 d=a*b*c
return d def test1(): m = a+c return m res1=test() res2 = test1() print(res1,res2) #100 15
参数
形参、实参、位置参数、默认值参数--位置参数,必填参数,默认值参数,不是必填的
def campare(a,b=5):#形参 if a>=b: return a else: return b res=campare(100,1000)#实参,a位置参数,必填,是第一个参数,传参要位置对应 res1=campare(4)#b为默认值参数,非必填项,如果不填,取默认值, 如果传参,取传的参数值 print(res,res1) #1000 5
可变参数
def test(a,b,*args):#可变参数 print(‘a‘,a) print(‘b‘,b) print(args[2]) test(2,3,‘123‘,‘456‘,‘789‘,‘sfsdf‘)#位置调用 #a--2 b--3 args[2]---‘789‘ #print(args)返回的是一个元组,包含除了a,b对应的值之外的所有值,可以通过下标访问
关键字参数
def test2(a,**kwargs):#**kwargs接受的值k—v键值对 print(a) print(kwargs)#返回一个字典 test2(a=1,name=‘lsas‘,age=18,addr=‘beijing‘)#必须要用关键字这种方式调用,否则报错,不是必填的 #1 #{‘addr‘: ‘beijing‘, ‘age‘: 18, ‘name‘: ‘lsas‘}
返回值
return ---如果函数没有写return的话,返回值是None,return不是必须写的,需要获取到函数的返回结果再写。
注:return 立即结束函数
递归---自己调用自己
用递归能实现的用循环都能实现,最后别递归,效率不高,最多能递归999次
def test1(num): num=int(input(‘输入一个数字:‘)) if num%2==0: return True print(‘不是偶数,请重新输入!‘) return test1()#递归调用 print(test1())
模块
一个python文件就是一个模块,包括一下三种模块
1、标准模块-- python自带的,不需要你安装的
2、第三方模块-- 需要安装,别人提供的。
自动安装-- pip install xxx 自动化安装的
手动安装-- 1.下载安装包 2.解压 3.在命令行里面进入到这个解压之后的目录(shift+右键--此处打开命令行) 4.执行python setup.py install
3、自己写的-- 自己写的python文件
导入模块
import xx 导入一个文件 ,导入文件的实质是什么,把这个python运行一次,文件名不能和自带的文件名相同
import 在导入文件的时候,首先从当前目录下找这个文件,然后从python的环境变量里面找(环境变量就是让一个命令,不管在哪个目录下都可以执行)
查看环境变量
import sys print(sys.path)#查看当前系统的环境变量 可以将自己的文件加入显示的环境变量中的任何一个目录下即可import