两件事|小密圈送红包了
阅读本文大概需要2分钟
小密圈发红包了
不知道大家是否还记得,我当时开通小密圈的时候就说过,小密圈是希望汇集一批喜欢Python,热爱Python的小伙伴,大家一起学习,一起加油.对于那些优秀的小伙伴,我承诺过,每个月底给10名小伙伴发现金红包,金额分5个等级从36.8-10.8不等.钱不是很多一点心意,希望鼓励大家多多分享,提高自己的同时也帮助了其他人.
有同学很好奇,不是两件事吗,还有一件事呢!上个月我们小密圈举办第一次的训练营活动. 第一次的训练营从基础开始练起来,通过实战做题,提高自己的功力。有很多同学积极参与了,这里我分享一下我们的题目和答案,希望对其他没有入群的小伙伴也能有一些帮助和启发.也欢迎大家指正!
比如自然数10以下能被3或者5整除的有,3,5,6和9,那么这些数字的和为23.
求能被3或者5整除的1000以内数字的和
点评:
这道题的解法很多,可以用for循环搞定,但是比较简洁的方法是用推到列表一行搞定
在一个数组指定数组里面移除指定的数字,并返回新的数组并从大到小排序
比如:
nums=[1,6,6,3,6,2,10,2,100],remove_num=6
要求返回时nums=[1, 2, 3, 10, 100]
点评:
这道题可以用for循环,然后判断一下,把不是6的数字存入一个新的列表,然后返回,然后在排序。比较简洁的做法是用filter函数,这是Python中的一个非常常用的高阶函数,一招搞定!
从排序好的任意数组列表里面删除重复元素(你不知道列表里面有多少个重逢的元素)
比如:nums=[1,3,3,5,5,8,10,10,100,100],处理完之后是:[1, 3, 5, 8, 10, 100]
点评:
这道题有很多小伙伴有不同的解法,有的用nums.count()来判断,也有的用find,还有的用for循环然后再过滤。其实对于去重,Python里面的集合是一个非常简便的操作.
print sorted(set(nums))>>[1, 3, 5, 8, 10, 100]
从排好序的数组里面,删除重复的元素.重复的数字最多只能出现2次
nums=[1,1,1,2,2,5] ,要求返回nums=[1,1,2,2,3]
点评:
常规的解法,一定是两层循环,然后记录每一个数字的重复次数,超过2次该数字remove掉,有没有更简便的方法呢,大概是用轮子.就是Python自带的库,collection.count(),一招搞定!
给定2个字符串s1,s2,判定s2能否给s1做循环移位得到字符串的包含。比如:
s1="AABBCD",s2="CDAA".要求2种解法
点评:
这道题看起来很复杂,仔细想想其实每个字母循环移位到最右边,不断的移位,到最后就变成AABBCDAABBCC,然后只要判断一些s2在不在里面就行了.
给定一个字符串,寻找没有字符串重复的最长子字符串.
比如:"abcabcbb" 找到的是"abc",长度为3,比如"bbbbb"找到的是"b",长度为1
点评:
这道题很多人想到的是多次循环,然后存到一个列表里面,然后再判断长度最大的一个字符组。其实我也是这样想的,不过我觉得用生成器可能更简单一点.
有一串长的字符串 names="LI XIA ,ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI,CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,DU GU QIU BAI,QIAO FENG"
要求:
1).过滤出所以的名字,去掉每个名字的左右的空格和乱码,每个名字的首字母大小
比如'LAO WANG *',处理成'Lao wang'
2).统计出所以名字里面名字最常的
3).统计出同姓的人名单
点评:
这是一个很典型的字符串处理和正则表达式的综合运用的例子,解法应该很多,不过其实只要2行就可以搞定!
数字1到5可以被写成:one,two,three,four,five,因此这些字母的总长度为:
3+3+5+4+4=19,现在求序列1到1000(包括1000),这些数字写成单词,总长度为多少
点评:
这道题其实把列表,字典和函数都综合运用了一下,然后稍微有一点点的算法在里面.对于初学者来说是一个非常好的练手的实战例子!
先设定一个英文字母对应数字mapping的字典:
然后根据数字的大小循环判断一下,最后求和!
结论:
第一期训练营的8道题目还是比较简单的,适合新手练习,也是希望大家打好基础。Python入门容易,精通难!后面的训练营会逐渐增加难度和趣味性,也是希望大家一起参与,有的时候一个人学编程,很枯燥也很寂寞,遇到问题也许知道的人几分钟,不知道的要走很多弯路! 你跟一个人交流收获的是一份知识,你跟100人交流,收获的是100份的知识.
目前小密圈里200人还差22名,超过200人会再次涨价的
长按二维码,加入小密圈
来源 | 菜鸟学Python
作者 | xinxin
本文章为菜鸟学Python独家原创稿件,未经授权不得转载