1. def 语句和参数
示例:
#定义一个函数
def helloFunc2(name):
print("Hello " + name)
helloFunc2("Alice")
2. 返回值和 return 语句
一般来说,函数调用返回值的结构成为函数的“返回值”。
用 def 语句创建函数时,可以用return 语句指定应该返回什么值。return 语句包含以下部分:
return 关键字;
函数应该返回的值或表达式。
示例:
import random
def getAnswer(answerNumber):
if answerNumber == 1:
return "first"
elif answerNumber == 2:
return "second"
elif answerNumber == 3:
return "forth"
else:
return "I don't wangt to gess"
r = random.randint(1,4)
print(getAnswer(r))
3. None 值
None表示没有,是NoneType数据类型的唯一值,且首字母必须大写。有一个使用None的地方就是print()函数的返回值。
示例:
#None值
print(None == print())#The result is True
注:
1) 其他编程语言可能称这个值为 null、nil 或 undefined,但是Python的值就只是None.
2) 在幕后,对于所有没有 return 语句的函数定义,Python 都会在末尾加上 return
None。
4. 关键字参数和 print()
“关键字参数”是由函数调用时加在它们前面的关键字来识别的。关键字参数通常用于可选变元。例如,print()函数有可选的变元 end 和 sep,分别指定在参数末尾打印什么,以及在参数之间打印什么来隔开它们。
示例1:
>>>print("a","b","c")
a b c
示例2:
>>>print("a","b","c",sep=":")
a:b:c
5. 局部和全局作用域
1) 局部变量不能在全局作用域内使用
2) 局部作用域不能使用其他局部作用域内的变量
3) 全局变量可以在局部作用域中读取
4) 名称相同的局部变量和全局变量
技术上, 在Python中让局部变量和全局变量同名是合法的,但是不建议这样做。
6. global 语句
如果需要在一个函数内修改全局变量,则需要使用global语句。
示例:
def spam():
global eggs
eggs = "spam"
eggs = "eggs"
spam()
print(eggs)
运行程序后结果将会输出:spam
有 4 条法则,来区分一个变量是处于局部作用域还是全局作用域:
1.如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。
2.如果在一个函数中,有针对该变量的global 语句,它就是全局变量。
3.否则,如果该变量用于函数中的赋值语句,它就是局部变量。
4.但是,如果该变量没有用在赋值语句中,它就是全局变量。
示例:
在一个函数中,一个变量要么总是全局变量,要么总是局部变量。函数中的代码
没有办法先使用名为 eggs 的局部变量,稍后又在同一个函数中使用全局 eggs 变量。
7. 异常处理
Python中使用try…except…语句来处理。示例:
#try...except...处理异常
def spam(devideBy):
try:
return 42/devideBy
except:
print("除数不能为0",end=",")
print(spam(2))
print(spam(0))
print(spam(1))
print(spam(8))
输出结果:
注:一旦执行跳到 except 子句的代码,就不会回到 try 子句。它会继续照常向下执行。