一、Python 提供了这样一些内建函数,像 print()、input()和 len() 函数,但也可以编写自己的函数。“函数”就像一个程序内的小程序。 格式一般如下:
有返回值:
def关键词 functionName函数名 (参数,参数,……不限个数) 冒号
return 返回值,返回值,返回值,……不限个数
无返回值:
def关键词 functionName函数名 (参数,参数,……不限个数) 冒号
由此可以产生四种函数情况:
1、无参数,无返回值:
def sayHello(): print('Hello,GYZB')
2、有参数,无返回值:
def sayHello(name): print('Hello'+ name)
3、无参数,有返回值:
def sayHello(): return 'Hello, GYZB' GY = sayHello() print(GY)
4、有参数,有返回值:
def sayHello(name): return ('Hello' + name) GY = sayHello(GYZB) print(GY)
二、在 Python 中有一个值称为 None,它表示没有值。None 是 NoneType 数据类型 的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined)。就像布尔值 True 和 False 一样,None 必须大写首字母 N。
有一个使用 None 的地方就是 print()的返回值。例如:
hello = print('Hello') None == hello
上面执行的结果是True。并不是指hello不存在,而是指hello没有值。hello没有值的原因是print()只是打印没有return返回值。
由以上可以猜测到,所有的无返回值的函数,都可以在末尾加上return None。那么python内部是这样做的吗?答案是YES!
三、关键字参数
“ 关键字参数”是由函数调用时加在它们前面的关键字来识别的。关键 字参数通常用于可选变元。例如,print()函数有可选的变元 end 和 sep,分别指定在 参数末尾打印什么,以及在参数之间打印什么来隔开它们。
输出结果:print('Hello') print('World')
Hello World
设置 end 关键字参数,将它变成另一个字符串。
输出结果:print('Hello', end='') print('World')
HelloWorld
设置sep关键字参数,替换默认的分割字符串。
结果是:print('Hello', 'World')
Hello World
设置之后:
结果:print('Hello', 'World', sep = ',')
Hello,World
四、局部和全局作用域
在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”。在所有函 数之外赋值的变量,属于“全局作用域”。处于局部作用域的变量,被称为“局部 变量”。处于全局作用域的变量,被称为“全局变量”。一个变量必是其中一种,不能既是局部的又是全局的。
“作用域”就像是变量的容器。一个函数被调用时,就创建了一个局部作用域。在这个函数内赋值的所有变量, 存在于该局部作用域内。该函数返回时,这个局部作用域就被销毁了,这些变量就丢失了。
作用域很重要,理由如下:
全局作用域中的代码不能使用任何局部变量;
但是,局部作用域可以访问全局变量;
一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。
如果在不同的作用域中,你可以用相同的名字命名不同的变量。也就是说,可以有一个名为 name 的局部变量,和一个名为 name 的全局变量。
如果需要在一个函数内修改全局变量,就使用 global 语句。如果在函数的顶部 有 global name 这样的代码,它就告诉 Python,“ 在这个函数中,name 指的是全局变 量,所以不要用这个名字创建一个局部变量。”
def sayHello(): global name name = 'GYZB' name = 'Bitch' sayHello() print(name)
难点:如果没有global,最后的结果是Bitch,有global,结果是GYZB。没有global,函数会自己创建一个name,赋值然后销毁,不会影响外部的全局变量name。
五、异常处理
错误可以由 try 和 except 语句来处理。那些可能出错的语句被放在 try 子句中。 如果错误发生,程序执行就转到接下来的 except 子句开始处。 用法如下:
try关键字 冒号
缩进(用Tab或者英文状态下的四个空格)的执行语句
except关键字 errorName错误标识名 冒号
缩进(用Tab或者英文状态下的四个空格)的执行语句
一旦执行到except就不会回到try函数。