Python学习笔记
Day_06-函数(一)
函数是编程语言里必不可少的一部分。编程中的函数是一定数量、实现单一或者关联功能的代码块。
函数的存在,能够很好地避免代码的重复使用。
函数包括系统内置函数(如print())以及用户自定义的函数。
6.1 定义函数
- 定义函数的关键词
def
-
def
后名紧跟函数名,函数名后面是()
,()
内部可以有参数,也可以没有参数; -
()
后面是冒号:
,和前面学的条件、循环语句类似,:
的存在表面了一种隶属关系,也就是下面的语句都属于我这次定义的函数。 - 还有类似的地方,函数内部的语句也是需要缩进。
-
return
往往出现在函数语句的最后,用以说明定义函数的返回值,即函数的输出数据。Vamei提到,函数中的return
起到了返回且终止的作用。换句话说,如果函数内部在return
后面还有语句,函数在执行的时候只执行到return,后面的语句将不会被执行。 -
return
不是必需的函数语句,如果没有return
,函数返回值为None,即为空数据;return
后也可以返回多个值,用逗号隔开。如return a, b, c
函数定义的通用格式如下:
def 函数名(参数):
函数体
接下来,我学着定义一个函数。
"""
python学习笔记-day06
函数的一些知识及用法。
version:0.1
author:chris
公众号:颖川河
"""
def num_plus(a, b):
c = a + b
return c
x, y = 10, 22
print(num_plus(x, y))
输出结果为:
32
需要注意的是,根据PEP8的要求,在定义函数的时候,函数的前面及后面都要有两个空行。
6.2 调用函数
“定义了函数,就像打造了一把利器,这把利器必须使用起来,才能发挥作用”(Vamei)。
使用函数的过程称作函数的调用。
函数定义的时候,自身参数称之为“形参”,函数调用时的参数称之为“实参”。
函数定义之后,使用的过程中给他赋予实实在在的参数,并得到函数返回值,就是函数的调用过程。以上面第一个例子为据,函数调用还可以这么写:
def num_plus(a, b):
c = a + b
return c
print(num_plus(10, 22))
函数在调用的时候,会自动根据参数的位置认定其与形参的对应关系。即10对应形参a,22对应形参b。
而第一个例子中,函数调用时的参数是系统中已经存在的变量。
6.3 函数例子
构建函数求最大公约数。
最大公约数有两种常用的方法:辗转相除法和更相减损法.
辗转相除法(引自百度百科):
例如,求(319,377):
∵ 319÷377=0(余319)
∴(319,377)=(377,319);
∵ 377÷319=1(余58)
∴(377,319)=(319,58);
∵ 319÷58=5(余29)
∴ (319,58)=(58,29);
∵ 58÷29=2(余0)
∴ (58,29)= 29;
∴ (319,377)=29。
代码如下:
def gcb_division(a, b):
while a > 0 and b > 0:
c = a % b
if c != 0:
a = b
b = c
else:
return b
print(gcb_division(377, 319))
运行结果为:
29
更相减损法(引自百度百科):
第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。
代码如下:
def gcb_minus(a, b, i):
i == 0
while a % 2 == 0 and b % 2 == 0:
a = a / 2
b = b / 2
i += 1
while True:
c = int(abs(a - b))
a = b
b = c
if c == 0:
return a*2**i
print(gcb_minus(260, 104, 0))
输出结果如下:
52
6.4 小结
这一节学习了函数最基本的知识点,并且尝试着定义了函数,也通过一个例题来说明函数的使用。后面还会进一步学习函数参数的传递等方面的内容。
网友评论