1. 函数关键字
关键字
是python内置的,具有特殊意义的标识符。
关键字后面不需要使用括号。
# 一些查看内置关键字的命令
>>> import keyword
>>> print(keyword.kwlist)
>>> print(len(keyword.kwlist))
函数
封装了独立功能,可以直接调用。
格式:函数名(参数)
函数名需要机械性记忆。
方法
方法和函数类似,同样是封装了独立的功能。
方法需要通过对象来调用,表示针对这个对象要做的操作:
>>> 对象.方法名(参数)
在变量后面输入.,然后选择针对这个变量要进行的操作,记忆起来会比函数要简单的多。
2. 函数的定义
def 函数名():
函数封装的代码
1.def是英文define的缩写
2.函数名称应该能够表达函数封装代码的功能,方便后续的调用
3.函数名称的命名应该符合标识符的命名规则:可由字母,下划线和数字组成,不能以数字开头,不能与关键字重名
4.定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
5.空函数
如果想定义一个什么事也不做的空函数,可以用pass语句:
def nop():
pass
pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。
pass还可以用在其他语句里,比如:
if age >= 18:
pass
缺少了pass,代码运行就会有语法错误。
3. 函数参数与作用域
参数
位置参数
我们先写一个计算x2的函数:
def power(x):
return x * x
对于power(x)函数,参数x就是一个位置参数。
当我们调用power函数时,必须传入有且仅有的一个参数x:
>>> power(5)
25
>>> power(15)
225
把power(x)修改为power(x, n),用来计算xn:
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
对于这个修改后的power(x, n)函数,可以计算任意n次方:
>>> power(5, 2)
25
>>> power(5, 3)
125
修改后的power(x, n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。
默认参数
新的power(x, n)函数定义没有问题,但是,旧的调用代码失败了,原因是我们增加了一个参数,导致旧的代码因为缺少一个参数而无法正常调用:
>>> power(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: power() missing 1 required positional argument: 'n'
Python的错误信息很明确:调用函数power()缺少了一个位置参数n。
这个时候,默认参数就排上用场了。由于我们经常计算x2,所以,完全可以把第二个参数n的默认值设定为2:
def power(x, n=2):
s