Python练习题详解之函数2(小白友好)

Python练习题详解之函数2(小白友好)

你好!欢迎来到Python练习题详解系列。为了让小白(也就是我本人)更好的理解代码,打好编程基础,我决定仔细地解说一些练习题。欢迎观看!奥利给!

在开始练习题详解前,我们来看看函数的一些相关知识点:

一、形参(parameter)和实参(argument)

函数从调用的角度来说,分为形式参数和实际参数。

形参是指函数创建和定义过程中小括号里的参数;

而实参指得是函数在被调用过程中传递进来的参数。举个例子:

二、函数文档

给函数写文档是为了让别人可以更好的理解你的函数,所以这是一个好习惯。

函数文档的作用是描述该函数的功能。(功能跟注释差不多)

在函数开头写下的字符串是不会打印出来的,但它作为函数的一部分存储起来。这个称为函数文档字符串,它的功能跟注释一样。

与注释不同的是,函数文档字符串可以通过特殊属性_ _doc_ _(注:_ _doc_ _两边分别是两条下划线)

另外,想用一个函数但不知道其用法时,会通过help()函数查看函数的文档。因此,对自己的函数也可以如法炮制:

三、关键字参数

普通的参数叫做位置参数,使用位置参数可以解决程序员在调用一个函数时候,搞乱位置参数的顺序,以至于函数无法按照预期实现的潜在问题。来看个例子:

关键字参数其实就是在传入实参时指定形参的变量名,尽管使用这种技巧要多打一些字,但随着程序规模的越来越大、参数越来越多,关键字参数起到的作用就越明显

四、默认参数

默认参数就是在定义的时候赋予了默认值的参数:

使用默认参数的话,就可以不带参数去调用函数。

所以,它们之间的区别是:关键字参数是在函数调用的时候,通过参数名指定要赋值的参数,这样做就不怕因为搞不清参数的顺序而导致函数的调用出错;而默认参数是在参数定义过程中,为形参赋初值,当函数调用的时候,不传递参数,则默认使用形参的初始值代替。

五、收集参数

收集参数就是在不确定有多少参数时使用,在大多数的时候被称作可变参数,仅需要在参数前面加上星号(*)即可:

Python就是把标志为收集参数的参数们打包成一个元组。

不过,需要注意的是:如果在收集参数的后面还需要指定其它参数,在调用函数的时候就应该使用关键字参数来指定,否则Python就都会把你的实参都列入收集参数的范畴。建议在参数中带有收集参数是,可以将其它参数设置为默认参数,这样不容易出错:

题目1

编写一个符合以下要求的函数:

a) 计算打印所有参数的和乘以基数(base=3)的结果

b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。

思路:

首先我们看到“计算所有参数”,好像题目并没有说一共有多少参数,所以我们的星号(收集参数)要出场!

除了‘计算所有参数’,这道题还存在一个基数,所以说明这个函数除了‘收集参数’还存在另一个base参数。

那我们就先定义这两个参数,然后用for循环来计算‘收集参数’里面的参数之和。

然后再用一个分支,如果base参数不等于5,结果就是和*3,如果base参数等于5,结果就是和*5。

这样,我们的第一题就做出来了。

答案:

思路2:

前面知识点说过,‘建议在参数中带有收集参数是,可以将其它参数设置为默认参数,这样不容易出错’,那我们也可以在第一行先让base = 3,之后就让result *= base。而在输入需要计算的数字的时候,当base为5,他也会自动替换上面的base = 3. 这是不是比上面的方法聪明多了~

【(假设这篇文章有人看)可能有小伙伴会疑惑为什么小兔不一开始就写这个简便答案,因为这篇文章是小白友好,第一种方法还是比较容易被看懂滴!看懂第一种之后,看第二种就没那么难啦】

题目2

编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为"You cannot improve your past, but you can improve your future. Once the time is wasted, life is wasted.",子字符串为"im",函数执行后打印“子字母串在目标字符串中共出现3次”

思路:

看到这个题目,我想起了之前字符串那篇文章里面提到的一个 .count() 函数,这个函数可以返回 sub 在字符串里边出现的次数。

答案:

先定义一个findstr() 的函数,然后在这里面先定义两个input,一个是str1,我们的目标字符串,一个是comp,我们的子字符串。然后在第九行,我们让str1调用这个count方法,括号里是comp,代表寻找comp字符串在str1字符串中出现的字数。

就可以啦!

如果不要input呢?那像下面这样也可以哒~

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