本篇博客主要针对函数、文件、异常,这3个部分的基本使用方法进行学习。
1 函数
1.1 形式
函数的定义用def,后面跟着函数名。同C++一样需要一个小括号包含传递的参数,另外还需要一个冒号。
def myFunction():
函数体的内容直接在下面写出即可,何时编写结束依然是以缩进为准,Python中同样要有return。
如果参数的位置加上了*
,那么表示像指针一样,此参数可以收集一个“数组”,里面有多个参数。
def test(*params,exp):
print('参数的长度是:',len(params),exp);
print('第二个参数是:' params[1]);
1.2 调用
直接使用 函数名(实参)
即可调用起已定义过的函数。
myFunction()
test(1,'小甲鱼',3.14,5,6,7,exp=8)
同C++一样,可以给出参数的默认值。
此外,参数可以由关键字来指定,格式形参2 = 实参2 , 形参1 = 实参1
,这样可以排除参数顺序的影响。
1.3 函数文档
在函数体的第一行,建议用单引号包住此函数的解释。这样调用可以随时查看此函数作用。
myFunction.__doc__
1.4 函数嵌套
python里面函数体内可以继续定义函数
def funl():
print('funl()正在被调用……)
def fun2():
print('fun2()正在被调用……)
具体实例可见下例:
def FunX(x):
def FunY(y):
return x*y
return FunY
i=Funx(8)
i(5) #得到5*8=40
Funx(8)(5) #得到5*8=40
同理函数可以调用自身,即递归(条件:1、函数体调用自身,2、有一个终止条件)。
1.5 lambda
lambda可以省去函数定义过程,比较简单。
用lambda
关键字和冒号:
进行定义,其中冒号前面是参数,冒号后面是对参数的实现
g = lambda x : 2 * x + 1
g(5)
g = lambda x , y: x + y
g(3,4)
相关BIF:
1、过滤器filter:筛选出我们需要的内容
list(filter(lambda x : x % 2 , range(10))) #[1,3,5,7,9]
2、映射map:将目标一一映射为所需内容
list(map(lambda x : x * 2 range(10))) #[2,4,6,8,10,12,14,16,18,20]
2 文件
2.1 read
使用read成员函数即可实现对文件内容的读取
f = open('E:\\record.txt')
f.read()
f.close()
2.2 write
f = open('E:\\test.txt','w')
f.write('xidian nb')
f.close()
2.3 文件系统
比文件更上层,如创建文件夹(目录),修改文件名、处理路径等操作。导入os模块即可,具体操作不赘述。
若需要永久存储文件,可用pickle模块。主要用途是把字典存入一个其他文件,使源代码易懂整洁
import os
import pickle
3 异常
在编程时,为了代码安全和稳定,将编程可能出的错误抛出。异常的种类有很多,要在Exception中捕获,具体有哪些这里不赘述。
3.1 assert语句
使用assert语句,assert类似于if,当后面条件成立时才会继续,否则抛出异常。
assert len(list) > 0
3.2 try-except语句
格式:
try:
检测范围
except Exception as reason :
出现异常(Exception)后的处理代码
finally:
无论如何都会被执行的代码
其中finally
可以省去,as reason
也可以省去,但为了易懂,建议采用。对应一个try,可以对应有很多except。
对应try,除了except,其实也可以使用else来表示,没有发生异常时会进行什么样的操作。
3.3 raise语句
在某位置提出一个异常。