1.函数定义
完成特定功能的一个语句组,可重复使用的,用来实现单一,或相关联功能的代码段,
通过调用函数名来完成语句组的功能
为什么使用函数
1)把程序模块化,减少编程的难度;
2)一次编写,代码重用;
2.函数分类
2.1系统自带函数
Python内嵌的函数(如abs()、len(),input())、 Python标准库中的函数(如random库中的random(), math库中的sqrt(),pow()))等
常用的标准库有 sys模块, os模块, fileinput模块, time 模块, math模块,random模块,turtle 模块
os模块主要是与操作系统的交互; 包括获取当前用户、管理员权限、文件夹、文件等权限的修改
import os print(os.getcwd()) # 得到当前目录 os.chdir('E:\\') # 改变当前目录,注意windows下用到转义 print(os.getcwd()) print(os.getlogin()) #得到用户登录名称 print(os.getenv('SystemRoot')) #得到环境变量 #os.putenv() # 设置环境变量 os.system('cmd') # 利用系统调用,运行cmd命令
path模块
import os,time print(os.path.getsize('C:\\Log\\Config.ini')) #获取文件大小 print(os.path.isfile('C:\\Log\\Config.ini') ) #判断是否为文件 print(os.path.isdir('C:\\Log\\Config.ini')) #判断是否为目录 print(os.path.samefile('C:\\Log\\Config.ini', 'C:\\Log\\202002.txt')) #判断是否为同一个文件 print(os.path.abspath('C:\\Log\\Config.ini')) #获取绝对路径 print(os.path.dirname('C:\\Log\\Config.ini')) #获取目录 print(os.path.exists('C:\\Log')) #判断指定目录是否存在 print(time.ctime(os.path.getatime('C:\\Log\\Config.ini'))) #获取最近一次访问时间
#获取当前目录
import os print(os.getcwd()) #获取当前目录 print(os.path.dirname(os.getcwd())) #获取当前目录的父目录 import pathlib print(pathlib.Path.cwd()) #获取当前目录 print(pathlib.Path.cwd().parent) #获取当前目录的父目录
2.2自定义函数
def <function_Name> (<Parameters>): <function_body>
函数名:可以是任意有效的python标识符;
参数列表:是调用函数时传递给它的值(可以由多个、一个、或者0个参数组成,当有多个参数时,参数与参数之间用逗号分隔)
参数分为:
1)形参:定义函数时,函数名后面圆括号中的变量,简称“形参”,形参只在函数内部有效;
2)实参:调用参数时,函数名后面圆括号中的变量,简称“实参”;
有3个需要注意的地方:
return None
,即函数默认返回None结构如果函数体body语句只有一行,或者可以简写为一行,则可以写在def的同行
2.3函数使用示例
2.3.1 普通参数
def add1(x,y): return x+y add1(4,6)
2.3.2 带有默认参数
def add2(x,y=100): return x+y add2(8)
2.3.3 动态参数
1)* 带参数
表示可以传无限的参数,传入的参数会自动拼接,当不传参数时会拼成空元祖(tuble)
不穿参数 ---> () 传一个参数11 ---> (11,) ---> 逗号用于区别元祖跟普通的常量 传两个参数11,22 ---> (11,22)
def dymynic_para_func(*para): print(para) dymynic_para_func(11) dymynic_para_func(11,22) dymynic_para_func(11,'a','b')
2)** 带参数
表示可以传无限的参数,传入的参数会自动拼接成map(python中称为字典)
3)*, 带参数——具名参数
后面所有的参数的参数名都会被限定,必须长得一模一样;第一个参数前面有1个*时,后面的所有参数都是具名参数
2.4函数
2.5
python函数参数中带有默认参数list的坑