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

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

题目1

编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)。

思路:

首先,给小伙伴们介绍一个BIF:

reversed()方法用于返回逆向迭代序列的值。同样的道理,实现效果跟列表的内建方法reserse()一致。区别是列表的内建方法是原地翻转,而reversed()是返回一个翻转后的迭代对象。你没看错,它不是返回一个列表,是返回一个迭代对象:

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

看到这里是不是一下子就直到怎么做了!确实!这是一种很简便的方法帮我们实现这个程序。

我们先把参数转换成list,然后如果这个list 等于他的reversed形式,我们就返回yes!是回文联,如果不是,就返回no!

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

那如果不要用这个方法呢~ 在python荣耀的战场,reversed() 被ban了。

好,那我们来想想不用这个方法,能不能也实现这个程序。

我做了一个小表格,帮助我们更好的理解。我们现在要做的是,让程序判断,这个 0 是不是等于 6,1 是不是等于 5,2是不是等于4,至于3……怎么办呢

首先,毋庸置疑,0,1,2,我们可以用遍历的形式去实现,也就是for i in range…… range是什么呢,是不是来到2,我们就不需要再往上了,是的!那么for i in range(3)就符合了我们的需求,因为他代表0,1,2;

现在,来到另一个问题,这个 for i in range(3)的3是怎么得出来的呢。可不能每一次都列一个表格。我们找找规律,如果一句话有9个字,那这个数就是4,噢!所以这个数就是 9 // 2 = 4 ,同理,7 // 2 =3. 地板除就是这么好用!

至于6,5,4我们可以用这个字符串的长度来实现,长度-1,长度-2……上海自来水来自海上,有7个字,而我们的最后一位数在这个表格里是6,所以我们要在一开始先让length -1,进入循环之后,再继续依次减1。

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

再看看这个表格,是不是当前面的字和后面的字相等三次,上海自和自海上,我们就判定他是回文联,所以,我们可以说,当 i  == 3,就是回文联!

答案如下,哇嘎嘎:

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

题目2

编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、数字的个数。

思路:

首先,我们看到 ‘可能不止一个’ 就要想到def 函数后面带一个星号*,这样我们就可以输入不止一个参数。

然后我们要统计传入的英文和数字的个数,我们应该就想到了.isdigit() 和 .isalpha(),聪明的小伙伴可能觉得,呀,那很简单,做一个循环,然后让字符串里面的 i 加上.isdigit() 和 .isalpha(),再做一个变量的+=1,最后把变量的个数打印出来,不就好了。

确实是这样滴!但是我们不要忘记一个盲点(差点说华点hhh,盲生,你发现了华点),就是我们这个函数传入了不止一个参数,我们应该要把这写参数先变成字符串,要不然这个 i 就不会遍历字符串里面的每一个字符!

答案:

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

 

run:

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

有的小伙伴可能会觉得,what,就这?这算什么智能机器人,也太菜了吧!改进一下吧!!

行吧!改进改进!我要让我的智能机器人做到分别统计每个参数的英文字母、数字、空格、其他字符的个数!(燃烧吧!小宇宙!)

燃烧一半,我觉得这个需求好像有点难,现在买灭火器还来得及吗,来不及了!冲吧!

首先,我们思考一下,如果要让每个字符串分别统计,就说明我们的循环一定是分别进入这三个参数的。

对,那么分别进入三个参数应该怎么做呢?

有没有想到我们之前提过的 两个 for 的循环结构!

截图:

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

所以,我们可以做两个for,让我们的程序先进入第一个参数,然后再遍历第一个参数;然后才进入第二个参数,再遍历第二个参数……

其中,第一个for的 i 是在长度的范围遍历,也就是参数的个数,第二个for的 j 是在第 i 个参数里面遍历。

答案: 

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

在这里,那些 word = 0,num = 0之类的应该写在第一个for里面,代表每一次进入一个新的参数,这些数据会清零。(如果不放在第一个for 里面,就会产生一个累计的数,not good!)

run:

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

呀呀,开心~!嘻嘻嘻!

 

相关文章: