1.函数的简单应用
公共:
str, int,float,bool,bytes,list,set,tuple, dict,max,min,len,print,input
特定类型的函数:
Math : pow(), sqrt().
str: find(), split(), replace()..
random: random()
os: listdir(),remove()
os.path: isfile() , isdir()
函数本质就是将重复的代码封装在一块,当使用时可被重复地调用。
定义函数的语法:
def函数名 (参数列表):
功能语句
[return表达式] #如果函数有返回值,则使用 return
如:
def sub(x, y): #定义时,函数的参数名称之为 形参
return x + y #返回两个数的和
s = sub(10, 20) # s : 30 ,调用时,函数的参数称之为 实参
注意: 编写规范,函数的前后应该空两行
函数中是否存在参数,都必须存在 小括号 ( )
函数中存在while循环时,如果在循环语句有 return语句,则会中断循环
函数名的命名, 跟变量名的命名规则是一样的
2.函数的关键字参数
调用函数时,可以使用函数的形参名来传值。
如果使用形参名指定参数值,则所有参数必须统一, 除了带默认值的参数
3.函数参数的默认值
是在形参名后 设置默认值:def xx(ns=10)
有默认值的参数,在调用时可以不用提供实参
4.不定长度的参数
*args : tuple元组类型
**kwargs: dict字典
在函数的参数列表中,*args和**kwargs一般要放在普通的参数的后面,
如果在前面的话,普通参数必须使用关键参数传值(参数名 =参数值)。
5.匿名函数
函数名 = lambda参数列表:表达式,函数的返回值即是表达式值
函数名(实参列表)
6.偏函数
- functools.partial(现有的函数名, 关键参数赋值表达式),返回函数名
表象: 偏函数即是现有函数的分身,区别是关键参数值不同。
7.作用域
只针对模块、类,函数中的变量,这些变量一般只作用在如函数的局部。
如果想将局变提升为全局:
global局部变量名
8. Python的异常处理
之前的代码经常会出现的异常:
TypeError, KeyError,IndexError、 ValueError
Exception
9.函数
1)定义函数
def 函数名(参数列表):
语句
return 结果
如函数没有一个return ,则返回是None
def add(x, y):
s = x + y
return s
调用函数:add(10, 20) 返回30
关键参数传值:
add(y=10, x=20)
参数默认值
def multiple(x, base=4):
if x % base == 0:
return True
print(‘hahahaha’)
return False
调用时:multiple(13) 返回False
multiple(15, 5) 返回True
def sum_(*args):
s = 0
for n in args:
s += n
return s
调用:sum_(10, 20, 30 , 40, 50)
sum_(1, 5, 8)
**kwargs : 一般情况下,做函数的可选项
def openTxt(path, **kwargs):
mode = kwargs.get(‘mode’)
if not mode:
mode = ‘rt’ # 默认值
charset = kwargs.get(‘charset’)
if not charset:
charset= ‘utf-8’
with open(path, mode, encoding=charset) as f:
c = f.read()
print(c)
调用:openTxt(r’c:\aa.txt’)
openTxt(r’c:\aa.txt’, charset=‘gbk’)
openTxt(r’c:\aa.txt’,charset=‘gbk’,mode=‘w+’)
异常处理:
try:
可能出现的异常
except 异常类as 类对象:
处理异常的语句
finally:
最终处理的语句
打开文件时可能会出现异常,IOError
try:
f = open(r’c:\aa.txt’) # 如果aa.txt文件不存在
except:
print(‘文件不存在’)
finally:
print(‘文件操作结束’)
def chgInt(x): # 将字符的x参数值转成int类型
try:
return int(x)
except:
print(‘{0} 不能转成int’.format(x))
return 0
‘’.replace()
s.find()
‘saa’.split()
max()
open()
调用:chgInt(‘a’) == None # 打印‘a’ 不能转成int
chgInt(’10’) == 10 # 返回10
Sort 排序