【《人工智能实践教程》测评】Python 函数
# 【《人工智能实践教程》测评】Python 函数## 函数
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。
> Tips: 如果一件事需要重复两遍以上,请务必编程完成……
函数这个数学名词是 **莱布尼茨 (Leibniz)** 在 1694 年开始使用的,以描述曲线的一个相关量,如曲线的斜率或者曲线上的某一点。莱布尼兹所指的函数现在被称作可导函数,数学家之外的普通人一般接触到的函数即属此类。对
于可导函数可以讨论它的极限和导数。此两者描述了函数输出值的变化同输入值变化的关系,是微积分学的基础。
中文的“函数”一词由清朝数学家**李善兰**译出。其《代数学》书中解释:
“凡此變數中函(包含)彼變數者,則此為彼之函數”。
## 定义一个函数
```python
def test(a,b):
"sum of a and b"
print("%d"%(a+b))
test(1,2)
```
输出 `3`
### 形参与实参
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
```python
def area(width, height): # parameter
return width * height
w = 4 # argument
h = 5 # argument
print(area(w,h))
```
使用函数的好处:代码重用、便于修改、易于扩展。
## 函数的参数
### 参数检查
调用函数时,如果参数个数不对,Python 解释器会自动检查出来,并抛出 TypeError;
- 如果参数类型不对,Python 解释器就无法帮我们检查。
- 数据类型检查可以用内置函数 isinstance 实现。
### 默认参数
需求: 定义一函数,计算x值的n次方。那如果计算x平方时只需要传入x值时怎么解决?
- - 默认参数可以降低调用函数的难度。
- - 默认参数注意事项:
- - 有多个参数时,变化大放前面,变化小的放后面;
- - 必选参数在前,默认参数在后
默认函数容易出错点:
先定义一个函数,传入一个 list,添加一个 END 再返回.
### 可变参数
可变参数就是==传入的参数个数是可变的==,可以是 1 个、2 个到任意个,还可以是 0 个。
- 以数学题为例子,给定一组数字 a,b,c ..
- 请计算 a 2 + b 2 + c 2 + ..
如果已经有一个 list 或者 tuple,要调用一个可变参数怎么办?
1. Python 允许你在 list 或 tuple 前面加一个 * 号;
2. 把 list 或 tuple 的元素变成可变参数传进去;
```python
largs =
func(largs,largs,largs)
func(*largs)
```
### 关键字参数
- 关键字参数允许传入 0 个或任意个含参数名的参数;
- 这些关键字参数在函数内部自动组装为一个 dict;
- 关键字参数用 **kwargs;
### 参数组合
- 参数组合是指可以必选参数、 默认参数、 可变参数和关键字参数一起使用。
- 参数定义的顺序必须是:必选参数、 默认参数、可变参数和关键字参数。
对于任意函数,都可以通过类似 `func(*args, **kw)` 的形式调用它。
## 匿名函数
匿名函数指一类无须定义标识符的函数或子程序。Python用 lambda 语法定义匿名函数,只需用表达式而无需申明。(省略了用def声明函数的标准步骤)
```python
# define anonymous function
sum = lambda arg1, arg2: arg1 + arg2
# call sum function
print("Value of total : ", sum(10,20))
print("Value of total : ", sum(20,20))
```
lambda 函数的语法只包含一个语句
```
lambda ]:expression
```
lambda 函数能接收任何数量的参数但只能返回一个表达式的值
## 递归函数
已知: 函数可以调用函数。
结论: 一个函数在内部调用自己本身,这个函数就是递归函数。
例如:求阶乘
```python
def factorial(num):
"""递归方法求 num 的阶乘"""
result = 1
# product fo 1, 2, 3, ... , n
for item in range (1, num + 1):
# result
result *= item
return result
if __name__ == '__main__':
print("2! is ", factorial(2))
print("3! is ", factorial(3))
print("3! is ", factorial(5))
```
输出
## 练习
```
# 打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("{}*{} = {} \t".format(i,j,i*j),end=" ")
print()
```
### 效果
<p>ok</p>
<p>定义时小括号中的参数,用来接收参数用的,称为 “形参”<br />
调用时小括号中的参数,用来传递给函数用的,称为 “实参”</p>
<p>楼主分享的python函数相关基础知识值得我这样的入门者学习收藏,感谢</p>
99乘法表 我以前用c语言打印过~,记得换行
页:
[1]