1. 函数关键字
python中一共含有32个关键字:‘false’, ‘none’, ‘true’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
–关键字-是Python内置的、具有特殊意义的表示符
--使用时关键字后面不需要括号
2. 函数的定义
在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
例如自定义一个求绝对值的函数my_abs()
def my_abs(x):
if x>0:
return x
else:
return -x
print(my_abs(8))
空函数
如果想定义一个什么事也不做的空函数,可以用pass语句
def nop():
pass
pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。
参数检查
数据类型检查可以用内置函数isinstance()实现
联系 二元一次方程
import math
def quadratic(a,b,c):
if (b * b - 4 * a * c)>=0:
result1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
result2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
print('result1 is :')
print(result1)
print('result2 is :')
print(result2)
return result1,result2
else:
print('a,b,c不能构成')
quadratic(1,2,1)
3. 函数参数与作用域
假设power(x, n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。
则可以写出代码:
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
但是当n=3或者n大于三的情况,则需要输入n的值
比如:
power(5,3)
在定义函数的时候赋值,是一种默认参数,出现特殊情况的时候可以对其进行更改。
可变参数
参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:
def calc(numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
调用的时候,需要先组装出一个list或tuple:
>>> calc([1, 2, 3])
14
>>> calc((1, 3, 5, 7))
84
所以把函数的参数改为可变参数:
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。
如果已经有一个list或者tuple,要调用一个可变参数可以在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:
>>> nums = [1, 2, 3]
>>> calc(*nums)
14
4. 函数返回值
return:结束函数调用、返回值,默认NoneType
可返回多个值,如 return a,b