Python学习笔记-Day06

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 小结

这一节学习了函数最基本的知识点,并且尝试着定义了函数,也通过一个例题来说明函数的使用。后面还会进一步学习函数参数的传递等方面的内容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,198评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,334评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,643评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,495评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,502评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,156评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,743评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,659评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,200评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,282评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,424评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,107评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,789评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,264评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,798评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,435评论 2 359

推荐阅读更多精彩内容