参考:菜鸟教程
1、函数
1、函数定义
- 以 def 关键词开头,后接函数标识符名称和圆括号()。
- 函数内容以冒号起始,并且缩进
- 不带表达式的return相当于返回 None
def functionname( parameters ):
function_suite
return [expression]
2、参数传递
- 在 python 中,类型属于对象,变量是没有类型的
可变更和不可变更对象的传递
我的理解:
- 不可变对象当传递到函数中,函数结束的时候该对象副本也结束,函数外的值没被改变
- 可变对象当传递到函数中,函数结束之后,如果该对象被修改则这个值被永久修改,函数结束依然有效,函数外的值被改变了
3、不定长参数
- 加了星号(*)的变量名会存放所有未命名的变量参数。例子如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
def printinfo( arg1, *vartuple ):
print arg1
for var in vartuple:
print var
return
# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )
4、匿名函数
匿名函数可以参考一下菜鸟教程.具体功能不是特别熟悉。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
2、模块
主要是如何引包的一些操作,直接参考:菜鸟教程
3、文件/IO
主要讲到IO输入输出和文件的一些属性、处理方式,比较类似其他语言的方式,用到可以再参考:菜鸟教程
4、异常
python提供的标准异常可以参考菜鸟教程原文的图片:菜鸟教程
1、捕获异常
不带任何异常类型
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
捕获多个异常类型
try:
正常的操作
......................
except(Exception1[, Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
......................
else:
如果没有异常执行这块代码
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
finally使用
try:
<语句>
finally:
<语句> #退出try时总会执行
带参数的异常
这个参数好像应该就是异常的信息吧,看这边给的例子好像是这样,后面遇到再具体分析
try:
正常的操作
......................
except ExceptionType, Argument:
你可以在这输出 Argument 的值...
2、触发异常
遇到一些不合理的场景可以进行异常的触发,直接查看示例
def functionName( level ):
if level < 1:
raise Exception("Invalid level!", level)
# 触发异常后,后面的代码就不会再执行
3、自定义异常
举个例子,类的定义还没看到:
class Networkerror(RuntimeError):
def __init__(self, arg):
self.args = arg